summaryrefslogtreecommitdiff
path: root/man
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2020-01-23 23:24:04 -0800
committerGarrett D'Amore <garrett@damore.org>2020-01-23 23:24:04 -0800
commit8b8fdbdc2e3fef03e21177eb3710491e4c080d43 (patch)
tree0336322fa94119e9e37f9d88545ba6e58307cf2a /man
parentb67502ab569fafc050cb9b0380d2886bc2068ece (diff)
downloadnng-8b8fdbdc2e3fef03e21177eb3710491e4c080d43.tar.gz
nng-8b8fdbdc2e3fef03e21177eb3710491e4c080d43.tar.bz2
nng-8b8fdbdc2e3fef03e21177eb3710491e4c080d43.zip
Publishing updates for v1.2.4
Diffstat (limited to 'man')
-rw-r--r--man/v1.2.4/asciidoctor.css426
-rw-r--r--man/v1.2.4/index.html1489
-rw-r--r--man/v1.2.4/libnng.3.html1442
-rw-r--r--man/v1.2.4/nn_allocmsg.3compat.html145
-rw-r--r--man/v1.2.4/nn_bind.3compat.html169
-rw-r--r--man/v1.2.4/nn_close.3compat.html119
-rw-r--r--man/v1.2.4/nn_cmsg.3compat.html134
-rw-r--r--man/v1.2.4/nn_connect.3compat.html161
-rw-r--r--man/v1.2.4/nn_device.3compat.html135
-rw-r--r--man/v1.2.4/nn_errno.3compat.html290
-rw-r--r--man/v1.2.4/nn_freemsg.3compat.html102
-rw-r--r--man/v1.2.4/nn_get_statistic.3compat.html99
-rw-r--r--man/v1.2.4/nn_getsockopt.3compat.html489
-rw-r--r--man/v1.2.4/nn_poll.3compat.html230
-rw-r--r--man/v1.2.4/nn_reallocmsg.3compat.html136
-rw-r--r--man/v1.2.4/nn_recv.3compat.html166
-rw-r--r--man/v1.2.4/nn_recvmsg.3compat.html200
-rw-r--r--man/v1.2.4/nn_send.3compat.html175
-rw-r--r--man/v1.2.4/nn_sendmsg.3compat.html218
-rw-r--r--man/v1.2.4/nn_setsockopt.3compat.html446
-rw-r--r--man/v1.2.4/nn_shutdown.3compat.html123
-rw-r--r--man/v1.2.4/nn_socket.3compat.html263
-rw-r--r--man/v1.2.4/nn_strerror.3compat.html100
-rw-r--r--man/v1.2.4/nn_term.3compat.html122
-rw-r--r--man/v1.2.4/nng.7.html421
-rw-r--r--man/v1.2.4/nng_aio.5.html107
-rw-r--r--man/v1.2.4/nng_aio_abort.3.html100
-rw-r--r--man/v1.2.4/nng_aio_alloc.3.html145
-rw-r--r--man/v1.2.4/nng_aio_begin.3.html135
-rw-r--r--man/v1.2.4/nng_aio_cancel.3.html113
-rw-r--r--man/v1.2.4/nng_aio_count.3.html116
-rw-r--r--man/v1.2.4/nng_aio_defer.3.html164
-rw-r--r--man/v1.2.4/nng_aio_finish.3.html124
-rw-r--r--man/v1.2.4/nng_aio_free.3.html90
-rw-r--r--man/v1.2.4/nng_aio_get_input.3.html97
-rw-r--r--man/v1.2.4/nng_aio_get_msg.3.html102
-rw-r--r--man/v1.2.4/nng_aio_get_output.3.html120
-rw-r--r--man/v1.2.4/nng_aio_result.3.html128
-rw-r--r--man/v1.2.4/nng_aio_set_input.3.html129
-rw-r--r--man/v1.2.4/nng_aio_set_iov.3.html138
-rw-r--r--man/v1.2.4/nng_aio_set_msg.3.html100
-rw-r--r--man/v1.2.4/nng_aio_set_output.3.html116
-rw-r--r--man/v1.2.4/nng_aio_set_timeout.3.html119
-rw-r--r--man/v1.2.4/nng_aio_stop.3.html129
-rw-r--r--man/v1.2.4/nng_aio_wait.3.html93
-rw-r--r--man/v1.2.4/nng_alloc.3.html110
-rw-r--r--man/v1.2.4/nng_bus.7.html154
-rw-r--r--man/v1.2.4/nng_bus_open.3.html111
-rw-r--r--man/v1.2.4/nng_clock.3supp.html122
-rw-r--r--man/v1.2.4/nng_close.3.html121
-rw-r--r--man/v1.2.4/nng_compat.3compat.html437
-rw-r--r--man/v1.2.4/nng_ctx.5.html272
-rw-r--r--man/v1.2.4/nng_ctx_close.3.html116
-rw-r--r--man/v1.2.4/nng_ctx_get.3.html258
-rw-r--r--man/v1.2.4/nng_ctx_getopt.3.html270
-rw-r--r--man/v1.2.4/nng_ctx_id.3.html104
-rw-r--r--man/v1.2.4/nng_ctx_open.3.html151
-rw-r--r--man/v1.2.4/nng_ctx_recv.3.html182
-rw-r--r--man/v1.2.4/nng_ctx_send.3.html214
-rw-r--r--man/v1.2.4/nng_ctx_set.3.html243
-rw-r--r--man/v1.2.4/nng_ctx_setopt.3.html243
-rw-r--r--man/v1.2.4/nng_cv_alloc.3supp.html112
-rw-r--r--man/v1.2.4/nng_cv_free.3supp.html85
-rw-r--r--man/v1.2.4/nng_cv_until.3supp.html149
-rw-r--r--man/v1.2.4/nng_cv_wait.3supp.html145
-rw-r--r--man/v1.2.4/nng_cv_wake.3supp.html125
-rw-r--r--man/v1.2.4/nng_cv_wake1.3supp.html126
-rw-r--r--man/v1.2.4/nng_device.3.html227
-rw-r--r--man/v1.2.4/nng_dial.3.html227
-rw-r--r--man/v1.2.4/nng_dialer.5.html151
-rw-r--r--man/v1.2.4/nng_dialer_close.3.html109
-rw-r--r--man/v1.2.4/nng_dialer_create.3.html168
-rw-r--r--man/v1.2.4/nng_dialer_get.3.html267
-rw-r--r--man/v1.2.4/nng_dialer_getopt.3.html279
-rw-r--r--man/v1.2.4/nng_dialer_id.3.html105
-rw-r--r--man/v1.2.4/nng_dialer_set.3.html274
-rw-r--r--man/v1.2.4/nng_dialer_setopt.3.html286
-rw-r--r--man/v1.2.4/nng_dialer_start.3.html207
-rw-r--r--man/v1.2.4/nng_duration.5.html91
-rw-r--r--man/v1.2.4/nng_free.3.html116
-rw-r--r--man/v1.2.4/nng_getopt.3.html271
-rw-r--r--man/v1.2.4/nng_http_client_alloc.3http.html107
-rw-r--r--man/v1.2.4/nng_http_client_connect.3http.html183
-rw-r--r--man/v1.2.4/nng_http_client_free.3http.html101
-rw-r--r--man/v1.2.4/nng_http_client_get_tls.3http.html125
-rw-r--r--man/v1.2.4/nng_http_client_set_tls.3http.html136
-rw-r--r--man/v1.2.4/nng_http_client_transact.3http.html205
-rw-r--r--man/v1.2.4/nng_http_conn_close.3http.html91
-rw-r--r--man/v1.2.4/nng_http_conn_read.3http.html192
-rw-r--r--man/v1.2.4/nng_http_conn_read_all.3http.html194
-rw-r--r--man/v1.2.4/nng_http_conn_read_req.3http.html163
-rw-r--r--man/v1.2.4/nng_http_conn_read_res.3http.html182
-rw-r--r--man/v1.2.4/nng_http_conn_transact.3http.html210
-rw-r--r--man/v1.2.4/nng_http_conn_write.3http.html191
-rw-r--r--man/v1.2.4/nng_http_conn_write_all.3http.html232
-rw-r--r--man/v1.2.4/nng_http_conn_write_req.3http.html169
-rw-r--r--man/v1.2.4/nng_http_conn_write_res.3http.html185
-rw-r--r--man/v1.2.4/nng_http_handler_alloc.3http.html322
-rw-r--r--man/v1.2.4/nng_http_handler_collect_body.3http.html163
-rw-r--r--man/v1.2.4/nng_http_handler_free.3http.html100
-rw-r--r--man/v1.2.4/nng_http_handler_get_data.3http.html89
-rw-r--r--man/v1.2.4/nng_http_handler_set_data.3http.html114
-rw-r--r--man/v1.2.4/nng_http_handler_set_host.3http.html138
-rw-r--r--man/v1.2.4/nng_http_handler_set_method.3http.html140
-rw-r--r--man/v1.2.4/nng_http_handler_set_tree.3http.html119
-rw-r--r--man/v1.2.4/nng_http_hijack.3http.html153
-rw-r--r--man/v1.2.4/nng_http_req_add_header.3http.html146
-rw-r--r--man/v1.2.4/nng_http_req_alloc.3http.html136
-rw-r--r--man/v1.2.4/nng_http_req_copy_data.3http.html152
-rw-r--r--man/v1.2.4/nng_http_req_del_header.3http.html112
-rw-r--r--man/v1.2.4/nng_http_req_free.3http.html100
-rw-r--r--man/v1.2.4/nng_http_req_get_data.3http.html103
-rw-r--r--man/v1.2.4/nng_http_req_get_header.3http.html95
-rw-r--r--man/v1.2.4/nng_http_req_get_method.3http.html88
-rw-r--r--man/v1.2.4/nng_http_req_get_uri.3http.html90
-rw-r--r--man/v1.2.4/nng_http_req_get_version.3http.html87
-rw-r--r--man/v1.2.4/nng_http_req_reset.3http.html101
-rw-r--r--man/v1.2.4/nng_http_req_set_data.3http.html154
-rw-r--r--man/v1.2.4/nng_http_req_set_header.3http.html128
-rw-r--r--man/v1.2.4/nng_http_req_set_method.3http.html112
-rw-r--r--man/v1.2.4/nng_http_req_set_uri.3http.html138
-rw-r--r--man/v1.2.4/nng_http_req_set_version.3http.html136
-rw-r--r--man/v1.2.4/nng_http_res_add_header.3http.html146
-rw-r--r--man/v1.2.4/nng_http_res_alloc.3http.html136
-rw-r--r--man/v1.2.4/nng_http_res_alloc_error.3http.html126
-rw-r--r--man/v1.2.4/nng_http_res_copy_data.3http.html152
-rw-r--r--man/v1.2.4/nng_http_res_del_header.3http.html111
-rw-r--r--man/v1.2.4/nng_http_res_free.3http.html100
-rw-r--r--man/v1.2.4/nng_http_res_get_data.3http.html103
-rw-r--r--man/v1.2.4/nng_http_res_get_header.3http.html95
-rw-r--r--man/v1.2.4/nng_http_res_get_reason.3http.html91
-rw-r--r--man/v1.2.4/nng_http_res_get_status.3http.html171
-rw-r--r--man/v1.2.4/nng_http_res_get_version.3http.html87
-rw-r--r--man/v1.2.4/nng_http_res_reset.3http.html87
-rw-r--r--man/v1.2.4/nng_http_res_set_data.3http.html154
-rw-r--r--man/v1.2.4/nng_http_res_set_header.3http.html128
-rw-r--r--man/v1.2.4/nng_http_res_set_reason.3http.html126
-rw-r--r--man/v1.2.4/nng_http_res_set_status.3http.html188
-rw-r--r--man/v1.2.4/nng_http_res_set_version.3http.html136
-rw-r--r--man/v1.2.4/nng_http_server_add_handler.3http.html126
-rw-r--r--man/v1.2.4/nng_http_server_del_handler.3http.html109
-rw-r--r--man/v1.2.4/nng_http_server_get_tls.3http.html125
-rw-r--r--man/v1.2.4/nng_http_server_hold.3http.html136
-rw-r--r--man/v1.2.4/nng_http_server_release.3http.html108
-rw-r--r--man/v1.2.4/nng_http_server_res_error.3http.html123
-rw-r--r--man/v1.2.4/nng_http_server_set_error_file.3http.html166
-rw-r--r--man/v1.2.4/nng_http_server_set_error_page.3http.html139
-rw-r--r--man/v1.2.4/nng_http_server_set_tls.3http.html149
-rw-r--r--man/v1.2.4/nng_http_server_start.3http.html124
-rw-r--r--man/v1.2.4/nng_http_server_stop.3http.html114
-rw-r--r--man/v1.2.4/nng_inproc.7.html137
-rw-r--r--man/v1.2.4/nng_inproc_register.3.html102
-rw-r--r--man/v1.2.4/nng_iov.5.html96
-rw-r--r--man/v1.2.4/nng_ipc.7.html189
-rw-r--r--man/v1.2.4/nng_ipc_options.5.html256
-rw-r--r--man/v1.2.4/nng_ipc_register.3.html102
-rw-r--r--man/v1.2.4/nng_listen.3.html171
-rw-r--r--man/v1.2.4/nng_listener.5.html147
-rw-r--r--man/v1.2.4/nng_listener_close.3.html109
-rw-r--r--man/v1.2.4/nng_listener_create.3.html165
-rw-r--r--man/v1.2.4/nng_listener_get.3.html267
-rw-r--r--man/v1.2.4/nng_listener_getopt.3.html279
-rw-r--r--man/v1.2.4/nng_listener_id.3.html105
-rw-r--r--man/v1.2.4/nng_listener_set.3.html272
-rw-r--r--man/v1.2.4/nng_listener_setopt.3.html284
-rw-r--r--man/v1.2.4/nng_listener_start.3.html118
-rw-r--r--man/v1.2.4/nng_msg.5.html108
-rw-r--r--man/v1.2.4/nng_msg_alloc.3.html104
-rw-r--r--man/v1.2.4/nng_msg_append.3.html109
-rw-r--r--man/v1.2.4/nng_msg_body.3.html113
-rw-r--r--man/v1.2.4/nng_msg_chop.3.html110
-rw-r--r--man/v1.2.4/nng_msg_clear.3.html84
-rw-r--r--man/v1.2.4/nng_msg_dup.3.html100
-rw-r--r--man/v1.2.4/nng_msg_free.3.html86
-rw-r--r--man/v1.2.4/nng_msg_get_pipe.3.html113
-rw-r--r--man/v1.2.4/nng_msg_header.3.html121
-rw-r--r--man/v1.2.4/nng_msg_header_append.3.html109
-rw-r--r--man/v1.2.4/nng_msg_header_chop.3.html109
-rw-r--r--man/v1.2.4/nng_msg_header_clear.3.html85
-rw-r--r--man/v1.2.4/nng_msg_header_insert.3.html109
-rw-r--r--man/v1.2.4/nng_msg_header_len.3.html86
-rw-r--r--man/v1.2.4/nng_msg_header_trim.3.html110
-rw-r--r--man/v1.2.4/nng_msg_insert.3.html124
-rw-r--r--man/v1.2.4/nng_msg_len.3.html86
-rw-r--r--man/v1.2.4/nng_msg_realloc.3.html138
-rw-r--r--man/v1.2.4/nng_msg_set_pipe.3.html103
-rw-r--r--man/v1.2.4/nng_msg_trim.3.html111
-rw-r--r--man/v1.2.4/nng_msleep.3supp.html102
-rw-r--r--man/v1.2.4/nng_mtx_alloc.3supp.html112
-rw-r--r--man/v1.2.4/nng_mtx_free.3supp.html86
-rw-r--r--man/v1.2.4/nng_mtx_lock.3supp.html131
-rw-r--r--man/v1.2.4/nng_mtx_unlock.3supp.html101
-rw-r--r--man/v1.2.4/nng_options.5.html588
-rw-r--r--man/v1.2.4/nng_opts_parse.3supp.html298
-rw-r--r--man/v1.2.4/nng_pair.7.html223
-rw-r--r--man/v1.2.4/nng_pair_open.3.html123
-rw-r--r--man/v1.2.4/nng_pipe.5.html141
-rw-r--r--man/v1.2.4/nng_pipe_close.3.html114
-rw-r--r--man/v1.2.4/nng_pipe_dialer.3.html90
-rw-r--r--man/v1.2.4/nng_pipe_get.3.html283
-rw-r--r--man/v1.2.4/nng_pipe_getopt.3.html295
-rw-r--r--man/v1.2.4/nng_pipe_id.3.html103
-rw-r--r--man/v1.2.4/nng_pipe_listener.3.html90
-rw-r--r--man/v1.2.4/nng_pipe_notify.3.html181
-rw-r--r--man/v1.2.4/nng_pipe_socket.3.html99
-rw-r--r--man/v1.2.4/nng_pub.7.html129
-rw-r--r--man/v1.2.4/nng_pub_open.3.html112
-rw-r--r--man/v1.2.4/nng_pull.7.html115
-rw-r--r--man/v1.2.4/nng_pull_open.3.html112
-rw-r--r--man/v1.2.4/nng_push.7.html131
-rw-r--r--man/v1.2.4/nng_push_open.3.html112
-rw-r--r--man/v1.2.4/nng_random.3supp.html88
-rw-r--r--man/v1.2.4/nng_recv.3.html219
-rw-r--r--man/v1.2.4/nng_recv_aio.3.html189
-rw-r--r--man/v1.2.4/nng_recvmsg.3.html189
-rw-r--r--man/v1.2.4/nng_rep.7.html151
-rw-r--r--man/v1.2.4/nng_rep_open.3.html112
-rw-r--r--man/v1.2.4/nng_req.7.html252
-rw-r--r--man/v1.2.4/nng_req_open.3.html114
-rw-r--r--man/v1.2.4/nng_respondent.7.html154
-rw-r--r--man/v1.2.4/nng_respondent_open.3.html115
-rw-r--r--man/v1.2.4/nng_send.3.html247
-rw-r--r--man/v1.2.4/nng_send_aio.3.html207
-rw-r--r--man/v1.2.4/nng_sendmsg.3.html231
-rw-r--r--man/v1.2.4/nng_setopt.3.html262
-rw-r--r--man/v1.2.4/nng_sleep_aio.3.html106
-rw-r--r--man/v1.2.4/nng_sockaddr.5.html168
-rw-r--r--man/v1.2.4/nng_sockaddr_in.5.html133
-rw-r--r--man/v1.2.4/nng_sockaddr_in6.5.html133
-rw-r--r--man/v1.2.4/nng_sockaddr_inproc.5.html109
-rw-r--r--man/v1.2.4/nng_sockaddr_ipc.5.html141
-rw-r--r--man/v1.2.4/nng_sockaddr_zt.5.html144
-rw-r--r--man/v1.2.4/nng_socket.5.html121
-rw-r--r--man/v1.2.4/nng_socket_get.3.html261
-rw-r--r--man/v1.2.4/nng_socket_id.3.html104
-rw-r--r--man/v1.2.4/nng_socket_set.3.html250
-rw-r--r--man/v1.2.4/nng_stat.5.html136
-rw-r--r--man/v1.2.4/nng_stat_child.3.html104
-rw-r--r--man/v1.2.4/nng_stat_desc.3.html115
-rw-r--r--man/v1.2.4/nng_stat_name.3.html100
-rw-r--r--man/v1.2.4/nng_stat_next.3.html91
-rw-r--r--man/v1.2.4/nng_stat_string.3.html95
-rw-r--r--man/v1.2.4/nng_stat_timestamp.3.html124
-rw-r--r--man/v1.2.4/nng_stat_type.3.html159
-rw-r--r--man/v1.2.4/nng_stat_unit.3.html150
-rw-r--r--man/v1.2.4/nng_stat_value.3.html94
-rw-r--r--man/v1.2.4/nng_stats_free.3.html104
-rw-r--r--man/v1.2.4/nng_stats_get.3.html177
-rw-r--r--man/v1.2.4/nng_strdup.3.html111
-rw-r--r--man/v1.2.4/nng_stream.5.html137
-rw-r--r--man/v1.2.4/nng_stream_close.3str.html128
-rw-r--r--man/v1.2.4/nng_stream_dialer.5.html88
-rw-r--r--man/v1.2.4/nng_stream_dialer_alloc.3str.html136
-rw-r--r--man/v1.2.4/nng_stream_dialer_close.3str.html114
-rw-r--r--man/v1.2.4/nng_stream_dialer_dial.3str.html161
-rw-r--r--man/v1.2.4/nng_stream_dialer_free.3str.html107
-rw-r--r--man/v1.2.4/nng_stream_dialer_get.3str.html256
-rw-r--r--man/v1.2.4/nng_stream_dialer_set.3str.html243
-rw-r--r--man/v1.2.4/nng_stream_free.3str.html124
-rw-r--r--man/v1.2.4/nng_stream_get.3str.html259
-rw-r--r--man/v1.2.4/nng_stream_listener.5.html90
-rw-r--r--man/v1.2.4/nng_stream_listener_accept.3str.html144
-rw-r--r--man/v1.2.4/nng_stream_listener_alloc.3str.html138
-rw-r--r--man/v1.2.4/nng_stream_listener_close.3str.html114
-rw-r--r--man/v1.2.4/nng_stream_listener_free.3str.html107
-rw-r--r--man/v1.2.4/nng_stream_listener_get.3str.html257
-rw-r--r--man/v1.2.4/nng_stream_listener_listen.3str.html140
-rw-r--r--man/v1.2.4/nng_stream_listener_set.3str.html243
-rw-r--r--man/v1.2.4/nng_stream_recv.3str.html178
-rw-r--r--man/v1.2.4/nng_stream_send.3str.html171
-rw-r--r--man/v1.2.4/nng_stream_set.3str.html243
-rw-r--r--man/v1.2.4/nng_strerror.3.html106
-rw-r--r--man/v1.2.4/nng_strfree.3.html121
-rw-r--r--man/v1.2.4/nng_sub.7.html183
-rw-r--r--man/v1.2.4/nng_sub_open.3.html112
-rw-r--r--man/v1.2.4/nng_surveyor.7.html238
-rw-r--r--man/v1.2.4/nng_surveyor_open.3.html113
-rw-r--r--man/v1.2.4/nng_tcp.5.html170
-rw-r--r--man/v1.2.4/nng_tcp.7.html212
-rw-r--r--man/v1.2.4/nng_tcp_options.5.html220
-rw-r--r--man/v1.2.4/nng_tcp_register.3.html102
-rw-r--r--man/v1.2.4/nng_thread_create.3supp.html181
-rw-r--r--man/v1.2.4/nng_thread_destroy.3supp.html100
-rw-r--r--man/v1.2.4/nng_tls.5.html172
-rw-r--r--man/v1.2.4/nng_tls.7.html291
-rw-r--r--man/v1.2.4/nng_tls_config.5.html92
-rw-r--r--man/v1.2.4/nng_tls_config_alloc.3tls.html146
-rw-r--r--man/v1.2.4/nng_tls_config_auth_mode.3tls.html147
-rw-r--r--man/v1.2.4/nng_tls_config_ca_chain.3tls.html151
-rw-r--r--man/v1.2.4/nng_tls_config_ca_file.3tls.html163
-rw-r--r--man/v1.2.4/nng_tls_config_cert_key_file.3tls.html150
-rw-r--r--man/v1.2.4/nng_tls_config_free.3tls.html87
-rw-r--r--man/v1.2.4/nng_tls_config_hold.3tls.html96
-rw-r--r--man/v1.2.4/nng_tls_config_own_cert.3tls.html135
-rw-r--r--man/v1.2.4/nng_tls_config_server_name.3tls.html122
-rw-r--r--man/v1.2.4/nng_tls_options.5.html200
-rw-r--r--man/v1.2.4/nng_tls_register.3.html102
-rw-r--r--man/v1.2.4/nng_url_clone.3.html97
-rw-r--r--man/v1.2.4/nng_url_free.3.html86
-rw-r--r--man/v1.2.4/nng_url_parse.3.html188
-rw-r--r--man/v1.2.4/nng_version.3.html115
-rw-r--r--man/v1.2.4/nng_ws.7.html273
-rw-r--r--man/v1.2.4/nng_ws_register.3.html102
-rw-r--r--man/v1.2.4/nng_wss_register.3.html102
-rw-r--r--man/v1.2.4/nng_zerotier.7.html392
-rw-r--r--man/v1.2.4/nng_zt_register.3.html102
-rw-r--r--man/v1.2.4/nngcat.1.html527
-rw-r--r--man/v1.2.4/pygments-default.css69
308 files changed, 50422 insertions, 0 deletions
diff --git a/man/v1.2.4/asciidoctor.css b/man/v1.2.4/asciidoctor.css
new file mode 100644
index 00000000..9d9cc70c
--- /dev/null
+++ b/man/v1.2.4/asciidoctor.css
@@ -0,0 +1,426 @@
+/* Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
+/* Uncomment @import statement to use as custom stylesheet */
+/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
+article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
+audio,video{display:inline-block}
+audio:not([controls]){display:none;height:0}
+html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
+a{background:none}
+a:focus{outline:thin dotted}
+a:active,a:hover{outline:0}
+h1{font-size:2em;margin:.67em 0}
+abbr[title]{border-bottom:1px dotted}
+b,strong{font-weight:bold}
+dfn{font-style:italic}
+hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
+mark{background:#ff0;color:#000}
+code,kbd,pre,samp{font-family:monospace;font-size:1em}
+pre{white-space:pre-wrap}
+q{quotes:"\201C" "\201D" "\2018" "\2019"}
+small{font-size:80%}
+sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
+sup{top:-.5em}
+sub{bottom:-.25em}
+img{border:0}
+svg:not(:root){overflow:hidden}
+figure{margin:0}
+fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
+legend{border:0;padding:0}
+button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
+button,input{line-height:normal}
+button,select{text-transform:none}
+button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
+button[disabled],html input[disabled]{cursor:default}
+input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
+button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
+textarea{overflow:auto;vertical-align:top}
+table{border-collapse:collapse;border-spacing:0}
+*,*::before,*::after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
+html,body{font-size:100%}
+body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
+a:hover{cursor:pointer}
+img,object,embed{max-width:100%;height:auto}
+object,embed{height:100%}
+img{-ms-interpolation-mode:bicubic}
+.left{float:left!important}
+.right{float:right!important}
+.text-left{text-align:left!important}
+.text-right{text-align:right!important}
+.text-center{text-align:center!important}
+.text-justify{text-align:justify!important}
+.hide{display:none}
+img,object,svg{display:inline-block;vertical-align:middle}
+textarea{height:auto;min-height:50px}
+select{width:100%}
+.center{margin-left:auto;margin-right:auto}
+.stretch{width:100%}
+.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
+div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
+a{color:#2156a5;text-decoration:underline;line-height:inherit}
+a:hover,a:focus{color:#1d4b8f}
+a img{border:0}
+p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
+p aside{font-size:.875em;line-height:1.35;font-style:italic}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
+h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
+h1{font-size:2.125em}
+h2{font-size:1.6875em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
+h4,h5{font-size:1.125em}
+h6{font-size:1em}
+hr{border:solid #dddddf;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
+em,i{font-style:italic;line-height:inherit}
+strong,b{font-weight:bold;line-height:inherit}
+small{font-size:60%;line-height:inherit}
+code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
+ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
+ul,ol{margin-left:1.5em}
+ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
+ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
+ul.square{list-style-type:square}
+ul.circle{list-style-type:circle}
+ul.disc{list-style-type:disc}
+ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
+dl dt{margin-bottom:.3125em;font-weight:bold}
+dl dd{margin-bottom:1.25em}
+abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
+abbr{text-transform:none}
+blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
+blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
+blockquote cite::before{content:"\2014 \0020"}
+blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
+blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
+@media screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
+h1{font-size:2.75em}
+h2{font-size:2.3125em}
+h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
+h4{font-size:1.4375em}}
+table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
+table thead,table tfoot{background:#f7f8f7}
+table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
+table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
+table tr.even,table tr.alt{background:#f8f8f7}
+table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
+h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
+h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
+.clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:" ";display:table}
+.clearfix::after,.float-group::after{clear:both}
+:not(pre):not([class^=L])>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
+:not(pre)>code.nobreak{word-wrap:normal}
+:not(pre)>code.nowrap{white-space:nowrap}
+pre{color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;line-height:1.45;text-rendering:optimizeSpeed}
+pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
+pre>code{display:block}
+pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
+em em{font-style:normal}
+strong strong{font-weight:400}
+.keyseq{color:rgba(51,51,51,.8)}
+kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
+.keyseq kbd:first-child{margin-left:0}
+.keyseq kbd:last-child{margin-right:0}
+.menuseq,.menuref{color:#000}
+.menuseq b:not(.caret),.menuref{font-weight:inherit}
+.menuseq{word-spacing:-.02em}
+.menuseq b.caret{font-size:1.25em;line-height:.8}
+.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
+b.button::before,b.button::after{position:relative;top:-1px;font-weight:400}
+b.button::before{content:"[";padding:0 3px 0 2px}
+b.button::after{content:"]";padding:0 2px 0 3px}
+p a>code:hover{color:rgba(0,0,0,.9)}
+#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
+#header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:" ";display:table}
+#header::after,#content::after,#footnotes::after,#footer::after{clear:both}
+#content{margin-top:1.25em}
+#content::before{content:none}
+#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
+#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #dddddf}
+#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #dddddf;padding-bottom:8px}
+#header .details{border-bottom:1px solid #dddddf;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
+#header .details span:first-child{margin-left:-.125em}
+#header .details span.email a{color:rgba(0,0,0,.85)}
+#header .details br{display:none}
+#header .details br+span::before{content:"\00a0\2013\00a0"}
+#header .details br+span.author::before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
+#header .details br+span#revremark::before{content:"\00a0|\00a0"}
+#header #revnumber{text-transform:capitalize}
+#header #revnumber::after{content:"\00a0"}
+#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #dddddf;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
+#toc{border-bottom:1px solid #e7e7e9;padding-bottom:.5em}
+#toc>ul{margin-left:.125em}
+#toc ul.sectlevel0>li>a{font-style:italic}
+#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
+#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
+#toc li{line-height:1.3334;margin-top:.3334em}
+#toc a{text-decoration:none}
+#toc a:active{text-decoration:underline}
+#toctitle{color:#7a2518;font-size:1.2em}
+@media screen and (min-width:768px){#toctitle{font-size:1.375em}
+body.toc2{padding-left:15em;padding-right:0}
+#toc.toc2{margin-top:0!important;background:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #e7e7e9;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
+#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
+#toc.toc2>ul{font-size:.9em;margin-bottom:0}
+#toc.toc2 ul ul{margin-left:0;padding-left:1em}
+#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
+body.toc2.toc-right{padding-left:0;padding-right:15em}
+body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #e7e7e9;left:auto;right:0}}
+@media screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
+#toc.toc2{width:20em}
+#toc.toc2 #toctitle{font-size:1.375em}
+#toc.toc2>ul{font-size:.95em}
+#toc.toc2 ul ul{padding-left:1.25em}
+body.toc2.toc-right{padding-left:0;padding-right:20em}}
+#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
+#content #toc>:first-child{margin-top:0}
+#content #toc>:last-child{margin-bottom:0}
+#footer{max-width:100%;background:rgba(0,0,0,.8);padding:1.25em}
+#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
+#content{margin-bottom:.625em}
+.sect1{padding-bottom:.625em}
+@media screen and (min-width:768px){#content{margin-bottom:1.25em}
+.sect1{padding-bottom:1.25em}}
+.sect1:last-child{padding-bottom:0}
+.sect1+.sect1{border-top:1px solid #e7e7e9}
+#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
+#content h1>a.anchor::before,h2>a.anchor::before,h3>a.anchor::before,#toctitle>a.anchor::before,.sidebarblock>.content>.title>a.anchor::before,h4>a.anchor::before,h5>a.anchor::before,h6>a.anchor::before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
+#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
+#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
+#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
+details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
+details>summary:first-of-type{cursor:pointer;display:list-item;outline:none;margin-bottom:.75em}
+.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
+table.tableblock.fit-content>caption.title{white-space:nowrap;width:0}
+.paragraph.lead>p,#preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:1.21875em;line-height:1.6;color:rgba(0,0,0,.85)}
+table.tableblock #preamble>.sectionbody>[class="paragraph"]:first-of-type p{font-size:inherit}
+.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
+.admonitionblock>table td.icon{text-align:center;width:80px}
+.admonitionblock>table td.icon img{max-width:none}
+.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
+.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #dddddf;color:rgba(0,0,0,.6)}
+.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
+.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
+.exampleblock>.content>:first-child{margin-top:0}
+.exampleblock>.content>:last-child{margin-bottom:0}
+.sidebarblock{border-style:solid;border-width:1px;border-color:#dbdbd6;margin-bottom:1.25em;padding:1.25em;background:#f3f3f2;-webkit-border-radius:4px;border-radius:4px}
+.sidebarblock>:first-child{margin-top:0}
+.sidebarblock>:last-child{margin-bottom:0}
+.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
+.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
+.literalblock pre,.listingblock>.content>pre{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;overflow-x:auto;padding:1em;font-size:.8125em}
+@media screen and (min-width:768px){.literalblock pre,.listingblock>.content>pre{font-size:.90625em}}
+@media screen and (min-width:1280px){.literalblock pre,.listingblock>.content>pre{font-size:1em}}
+.literalblock pre,.listingblock>.content>pre:not(.highlight),.listingblock>.content>pre[class="highlight"],.listingblock>.content>pre[class^="highlight "]{background:#f7f7f8}
+.literalblock.output pre{color:#f7f7f8;background:rgba(0,0,0,.9)}
+.listingblock>.content{position:relative}
+.listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:inherit;opacity:.5}
+.listingblock:hover code[data-lang]::before{display:block}
+.listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:.5em;color:inherit;opacity:.5}
+.listingblock.terminal pre .command:not([data-prompt])::before{content:"$"}
+.listingblock pre.highlightjs{padding:0}
+.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
+.listingblock pre.prettyprint{border-width:0}
+.prettyprint{background:#f7f7f8}
+pre.prettyprint .linenums{line-height:1.45;margin-left:2em}
+pre.prettyprint li{background:none;list-style-type:inherit;padding-left:0}
+pre.prettyprint li code[data-lang]::before{opacity:1}
+pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
+table.linenotable{border-collapse:separate;border:0;margin-bottom:0;background:none}
+table.linenotable td[class]{color:inherit;vertical-align:top;padding:0;line-height:inherit;white-space:normal}
+table.linenotable td.code{padding-left:.75em}
+table.linenotable td.linenos{border-right:1px solid currentColor;opacity:.35;padding-right:.5em}
+pre.pygments .lineno{border-right:1px solid currentColor;opacity:.35;display:inline-block;margin-right:.75em}
+pre.pygments .lineno::before{content:"";margin-right:-.125em}
+.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
+.quoteblock:not(.excerpt)>.title{margin-left:-1.5em;margin-bottom:.75em}
+.quoteblock blockquote,.quoteblock p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
+.quoteblock blockquote{margin:0;padding:0;border:0}
+.quoteblock blockquote::before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
+.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
+.quoteblock .attribution{margin-top:.75em;margin-right:.5ex;text-align:right}
+.verseblock{margin:0 1em 1.25em}
+.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
+.verseblock pre strong{font-weight:400}
+.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
+.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
+.quoteblock .attribution br,.verseblock .attribution br{display:none}
+.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
+.quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
+.quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:1.6;word-spacing:0}
+.quoteblock.abstract{margin:0 1em 1.25em;display:block}
+.quoteblock.abstract>.title{margin:0 0 .375em;font-size:1.15em;text-align:center}
+.quoteblock.excerpt>blockquote,.quoteblock .quoteblock{padding:0 0 .25em 1em;border-left:.25em solid #dddddf}
+.quoteblock.excerpt,.quoteblock .quoteblock{margin-left:0}
+.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:1.0625rem}
+.quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;text-align:left;margin-right:0}
+table.tableblock{max-width:100%;border-collapse:separate}
+p.tableblock:last-child{margin-bottom:0}
+td.tableblock>.content>:last-child{margin-bottom:-1.25em}
+td.tableblock>.content>:last-child.sidebarblock{margin-bottom:0}
+table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
+table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
+table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
+table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
+table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px}
+table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0}
+table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
+table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
+table.frame-all{border-width:1px}
+table.frame-sides{border-width:0 1px}
+table.frame-topbot,table.frame-ends{border-width:1px 0}
+table.stripes-all tr,table.stripes-odd tr:nth-of-type(odd),table.stripes-even tr:nth-of-type(even),table.stripes-hover tr:hover{background:#f8f8f7}
+th.halign-left,td.halign-left{text-align:left}
+th.halign-right,td.halign-right{text-align:right}
+th.halign-center,td.halign-center{text-align:center}
+th.valign-top,td.valign-top{vertical-align:top}
+th.valign-bottom,td.valign-bottom{vertical-align:bottom}
+th.valign-middle,td.valign-middle{vertical-align:middle}
+table thead th,table tfoot th{font-weight:bold}
+tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
+tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
+p.tableblock>code:only-child{background:none;padding:0}
+p.tableblock{font-size:1em}
+ol{margin-left:1.75em}
+ul li ol{margin-left:1.5em}
+dl dd{margin-left:1.125em}
+dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
+ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
+ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
+ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
+ul.unstyled,ol.unstyled{margin-left:0}
+ul.checklist{margin-left:.625em}
+ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
+ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
+ul.inline{display:-ms-flexbox;display:-webkit-box;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0 0 .625em -1.25em}
+ul.inline>li{margin-left:1.25em}
+.unstyled dl dt{font-weight:400;font-style:normal}
+ol.arabic{list-style-type:decimal}
+ol.decimal{list-style-type:decimal-leading-zero}
+ol.loweralpha{list-style-type:lower-alpha}
+ol.upperalpha{list-style-type:upper-alpha}
+ol.lowerroman{list-style-type:lower-roman}
+ol.upperroman{list-style-type:upper-roman}
+ol.lowergreek{list-style-type:lower-greek}
+.hdlist>table,.colist>table{border:0;background:none}
+.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
+td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
+td.hdlist1{font-weight:bold;padding-bottom:1.25em}
+.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
+.colist td:not([class]):first-child{padding:.4em .75em 0;line-height:1;vertical-align:top}
+.colist td:not([class]):first-child img{max-width:none}
+.colist td:not([class]):last-child{padding:.25em 0}
+.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
+.imageblock.left{margin:.25em .625em 1.25em 0}
+.imageblock.right{margin:.25em 0 1.25em .625em}
+.imageblock>.title{margin-bottom:0}
+.imageblock.thumb,.imageblock.th{border-width:6px}
+.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
+.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
+.image.left{margin-right:.625em}
+.image.right{margin-left:.625em}
+a.image{text-decoration:none;display:inline-block}
+a.image object{pointer-events:none}
+sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
+sup.footnote a,sup.footnoteref a{text-decoration:none}
+sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
+#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
+#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em;border-width:1px 0 0}
+#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;margin-bottom:.2em}
+#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-1.05em}
+#footnotes .footnote:last-of-type{margin-bottom:0}
+#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
+.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
+.gist .file-data>table td.line-data{width:99%}
+div.unbreakable{page-break-inside:avoid}
+.big{font-size:larger}
+.small{font-size:smaller}
+.underline{text-decoration:underline}
+.overline{text-decoration:overline}
+.line-through{text-decoration:line-through}
+.aqua{color:#00bfbf}
+.aqua-background{background:#00fafa}
+.black{color:#000}
+.black-background{background:#000}
+.blue{color:#0000bf}
+.blue-background{background:#0000fa}
+.fuchsia{color:#bf00bf}
+.fuchsia-background{background:#fa00fa}
+.gray{color:#606060}
+.gray-background{background:#7d7d7d}
+.green{color:#006000}
+.green-background{background:#007d00}
+.lime{color:#00bf00}
+.lime-background{background:#00fa00}
+.maroon{color:#600000}
+.maroon-background{background:#7d0000}
+.navy{color:#000060}
+.navy-background{background:#00007d}
+.olive{color:#606000}
+.olive-background{background:#7d7d00}
+.purple{color:#600060}
+.purple-background{background:#7d007d}
+.red{color:#bf0000}
+.red-background{background:#fa0000}
+.silver{color:#909090}
+.silver-background{background:#bcbcbc}
+.teal{color:#006060}
+.teal-background{background:#007d7d}
+.white{color:#bfbfbf}
+.white-background{background:#fafafa}
+.yellow{color:#bfbf00}
+.yellow-background{background:#fafa00}
+span.icon>.fa{cursor:default}
+a span.icon>.fa{cursor:inherit}
+.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
+.admonitionblock td.icon .icon-note::before{content:"\f05a";color:#19407c}
+.admonitionblock td.icon .icon-tip::before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
+.admonitionblock td.icon .icon-warning::before{content:"\f071";color:#bf6900}
+.admonitionblock td.icon .icon-caution::before{content:"\f06d";color:#bf3400}
+.admonitionblock td.icon .icon-important::before{content:"\f06a";color:#bf0000}
+.conum[data-value]{display:inline-block;color:#fff!important;background:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
+.conum[data-value] *{color:#fff!important}
+.conum[data-value]+b{display:none}
+.conum[data-value]::after{content:attr(data-value)}
+pre .conum[data-value]{position:relative;top:-.125em}
+b.conum *{color:inherit!important}
+.conum:not([data-value]):empty{display:none}
+dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
+h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
+p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
+p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
+p{margin-bottom:1.25rem}
+.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
+.exampleblock>.content{background:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
+.print-only{display:none!important}
+@page{margin:1.25cm .75cm}
+@media print{*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
+html{font-size:80%}
+a{color:inherit!important;text-decoration:underline!important}
+a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
+a[href^="http:"]:not(.bare)::after,a[href^="https:"]:not(.bare)::after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
+abbr[title]::after{content:" (" attr(title) ")"}
+pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
+thead{display:table-header-group}
+svg{max-width:100%}
+p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
+h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
+#toc,.sidebarblock,.exampleblock>.content{background:none!important}
+#toc{border-bottom:1px solid #dddddf!important;padding-bottom:0!important}
+body.book #header{text-align:center}
+body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em}
+body.book #header .details{border:0!important;display:block;padding:0!important}
+body.book #header .details span:first-child{margin-left:0!important}
+body.book #header .details br{display:block}
+body.book #header .details br+span::before{content:none!important}
+body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
+body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
+.listingblock code[data-lang]::before{display:block}
+#footer{padding:0 .9375em}
+.hide-on-print{display:none!important}
+.print-only{display:block!important}
+.hide-for-print{display:none!important}
+.show-for-print{display:inherit!important}}
+@media print,amzn-kf8{#header>h1:first-child{margin-top:1.25rem}
+.sect1{padding:0!important}
+.sect1+.sect1{border:0}
+#footer{background:none}
+#footer-text{color:rgba(0,0,0,.6);font-size:.9em}}
+@media amzn-kf8{#header,#content,#footnotes,#footer{padding:0}} \ No newline at end of file
diff --git a/man/v1.2.4/index.html b/man/v1.2.4/index.html
new file mode 100644
index 00000000..f03f4e41
--- /dev/null
+++ b/man/v1.2.4/index.html
@@ -0,0 +1,1489 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>Section 1: Commands and Utilities</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+</head>
+<body class="article toc2 toc-left">
+<div id="header">
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_section_1_commands_and_utilities">Section 1: Commands and Utilities</a></li>
+<li><a href="#_section_3_library_functions">Section 3: Library Functions</a></li>
+<li><a href="#_section_3compat_compatible_library_functions">Section 3compat: Compatible Library Functions</a></li>
+<li><a href="#_section_3http_supplemental_http_functions">Section 3http: Supplemental HTTP Functions</a></li>
+<li><a href="#_section_3str_supplemental_tcp_functions">Section 3str: Supplemental TCP Functions</a></li>
+<li><a href="#_section_3supp_supplemental_functions">Section 3supp: Supplemental Functions</a></li>
+<li><a href="#_section_3tls_supplemental_tls_functions">Section 3tls: Supplemental TLS Functions</a></li>
+<li><a href="#_section_5_macros_and_types">Section 5: Macros and Types</a></li>
+<li><a href="#_section_7_protocols_and_transports">Section 7: Protocols and Transports</a></li>
+</ul>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_section_1_commands_and_utilities">Section 1: Commands and Utilities</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents utilities and programs that are included
+with the distribution.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nngcat.1.html">nngcat(1)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">command line access to Scalability Protocols</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_3_library_functions">Section 3: Library Functions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents core libary functions supporting Scalability
+Protocols.</p>
+</div>
+<div class="paragraph">
+<p>Most Scalability Protocols applications can be written using just
+the functions documented in this section, as this represents the
+primary API for building such applications.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="libnng.3.html">libnng(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nanomsg next generation library</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_abort.3.html">nng_aio_abort(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">abort asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate asynchronous I/O handle</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_begin.3.html">nng_aio_begin(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">begin asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">cancel asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_count.3.html">nng_aio_count(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return number of bytes transferred</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_defer.3.html">nng_aio_defer(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">defer asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_finish.3.html">nng_aio_finish(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">finish asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_free.3.html">nng_aio_free(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free asynchronous I/O handle</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_get_input.3.html">nng_aio_get_input(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return input parameter</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get message from asynchronous receive</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_get_output.3.html">nng_aio_get_output(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return output result</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_result.3.html">nng_aio_result(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return result of asynchronous operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_input.3.html">nng_aio_set_input(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set input parameter</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set scatter/gather vector</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set message for asynchronous send</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_output.3.html">nng_aio_set_output(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set output result</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_timeout.3.html">nng_aio_set_timeout(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set asynchronous I/O timeout</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_stop.3.html">nng_aio_stop(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">stop asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_wait.3.html">nng_aio_wait(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wait for asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_alloc.3.html">nng_alloc(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate memory</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_bus_open.3.html">nng_bus_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create bus socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_close.3.html">nng_close(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_close.3.html">nng_ctx_close(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close context</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_get.3.html">nng_ctx_get(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get context option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_getopt.3.html">nng_ctx_getopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get context option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_id.3.html">nng_ctx_id(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return numeric context identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_open.3.html">nng_ctx_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create context</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_recv.3.html">nng_ctx_recv(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive message using context asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_send.3.html">nng_ctx_send(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send message using context asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_set.3.html">nng_ctx_set(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set context option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_setopt.3.html">nng_ctx_setopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set context option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_device.3.html">nng_device(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">message forwarding device</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dial.3.html">nng_dial(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create and start dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_close.3.html">nng_dialer_close(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_create.3.html">nng_dialer_create(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_get.3.html">nng_dialer_get(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_getopt.3.html">nng_dialer_getopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_id.3.html">nng_dialer_id(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return numeric dialer identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_set.3.html">nng_dialer_set(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_start.3.html">nng_dialer_start(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">start dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_free.3.html">nng_free(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free memory</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_getopt.3.html">nng_getopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get socket option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_inproc_register.3.html">nng_inproc_register(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register inproc transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ipc_register.3.html">nng_ipc_register(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register ipc transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listen.3.html">nng_listen(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create and start listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_close.3.html">nng_listener_close(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_create.3.html">nng_listener_create(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_get.3.html">nng_listener_get(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_getopt.3.html">nng_listener_getopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_id.3.html">nng_listener_id(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return numeric listener identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_set.3.html">nng_listener_set(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_setopt.3.html">nng_listener_setopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_start.3.html">nng_listener_start(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">start listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_append.3.html">nng_msg_append(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">append to message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_body.3.html">nng_msg_body(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_chop.3.html">nng_msg_chop(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from end of message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_clear.3.html">nng_msg_clear(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">clear message body content</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_dup.3.html">nng_msg_dup(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">duplicate a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_free.3.html">nng_msg_free(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_get_pipe.3.html">nng_msg_get_pipe(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get pipe for message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header.3.html">nng_msg_header(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_append.3.html">nng_msg_header_append(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">append to message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_chop.3.html">nng_msg_header_chop(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from end of message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_clear.3.html">nng_msg_header_clear(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">clear message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_insert.3.html">nng_msg_header_insert(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">prepend to message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return message header length</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_trim.3.html">nng_msg_header_trim(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from start of message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_insert.3.html">nng_msg_insert(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">prepend to message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_len.3.html">nng_msg_len(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return message body length</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reallocate a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_set_pipe.3.html">nng_msg_set_pipe(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set pipe for message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_trim.3.html">nng_msg_trim(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from start of message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pair_open.3.html">nng_pair_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create pair socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_close.3.html">nng_pipe_close(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_dialer.3.html">nng_pipe_dialer(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return dialer that created pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_get.3.html">nng_pipe_get(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get pipe option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get pipe option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_id.3.html">nng_pipe_id(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return numeric pipe identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_listener.3.html">nng_pipe_listener(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return listener that created pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_notify.3.html">nng_pipe_notify(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register pipe notification callback</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_socket.3.html">nng_pipe_socket(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return owning socket for pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pub_open.3.html">nng_pub_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create pub socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pull_open.3.html">nng_pull_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create pull socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_push_open.3.html">nng_push_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create push socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_recv.3.html">nng_recv(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">recv data</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_recv_aio.3.html">nng_recv_aio(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive message asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_recvmsg.3.html">nng_recvmsg(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">recv message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_rep_open.3.html">nng_rep_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create rep socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_req_open.3.html">nng_req_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create req socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_respondent_open.3.html">nng_respondent_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create respondent socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_send.3.html">nng_send(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send data</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_send_aio.3.html">nng_send_aio(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send message asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sendmsg.3.html">nng_sendmsg(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_setopt.3.html">nng_setopt(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set socket option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sleep_aio.3.html">nng_sleep_aio(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sleep asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_socket_get.3.html">nng_socket_get(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get socket option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_socket_id.3.html">nng_socket_id(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return numeric socket identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_socket_set.3.html">nng_socket_set(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set socket option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_child.3.html">nng_stat_child(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get child statistic</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_desc.3.html">nng_stat_desc(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic description</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_name.3.html">nng_stat_name(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic name</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_next.3.html">nng_stat_next(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get next statistic</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_string.3.html">nng_stat_string(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic string value</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_timestamp.3.html">nng_stat_timestamp(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic timestamp</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_type.3.html">nng_stat_type(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic type</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_unit.3.html">nng_stat_unit(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic unit</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_value.3.html">nng_stat_value(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic value</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stats_free.3.html">nng_stats_free(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free statistics snapshot</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stats_get.3.html">nng_stats_get(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistics snapshot</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_strdup.3.html">nng_strdup(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">duplicate string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_strerror.3.html">nng_strerror(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return an error description</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_strfree.3.html">nng_strfree(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free memory</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sub_open.3.html">nng_sub_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create sub socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_surveyor_open.3.html">nng_surveyor_open(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create surveyor socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tcp_register.3.html">nng_tcp_register(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register tcp transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_register.3.html">nng_tls_register(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register tls transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_url_clone.3.html">nng_url_clone(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">clone URL structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_url_free.3.html">nng_url_free(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free a URL structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_url_parse.3.html">nng_url_parse(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create URL structure from a string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_version.3.html">nng_version(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">report library version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ws_register.3.html">nng_ws_register(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register WebSocket transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_wss_register.3.html">nng_wss_register(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register WebSocket secure transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_zt_register.3.html">nng_zt_register(3)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register ZeroTier transport</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_3compat_compatible_library_functions">Section 3compat: Compatible Library Functions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents the <em>nanomsg</em> 1.0 libary compatible functions.</p>
+</div>
+<div class="paragraph">
+<p>These functions are provided as a transition aid, for application
+developers coming to <em>NNG</em> from <em>libnanomsg</em>, and are discouraged
+from use in new applications.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<div class="title">Tip</div>
+</td>
+<td class="content">
+While this is discouraged for long term use, as a transition aid
+applications may use the value returned by the
+<a href="nng_socket_id.3.html">nng_socket_id()</a> in these functions just like a
+socket descriptor (as if the socket were opened
+via <a href="nn_socket.3compat.html">nn_socket()</a>).
+This sort of API intermixing should only be used during transition from
+the legacy API to the new API.
+</td>
+</tr>
+</table>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_allocmsg.3compat.html">nn_allocmsg(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate message (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_bind.3compat.html">nn_bind(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">accept connections from remote peers (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_close.3compat.html">nn_close(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close socket (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_cmsg.3compat.html">nn_cmsg(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">message control data (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_connect.3compat.html">nn_connect(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">connect to remote peer (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_device.3compat.html">nn_device(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create forwarding device (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_errno.3compat.html">nn_errno(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return most recent error (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_freemsg.3compat.html">nn_freemsg(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free message (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_get_statistic.3compat.html">nn_get_statistic(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic (stub)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_getsockopt.3compat.html">nn_getsockopt(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get socket option (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_poll.3compat.html">nn_poll(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">poll sockets (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_reallocmsg.3compat.html">nn_reallocmsg(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reallocate message (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_recv.3compat.html">nn_recv(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive data (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_recvmsg.3compat.html">nn_recvmsg(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive message (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_send.3compat.html">nn_send(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send data (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_sendmsg.3compat.html">nn_sendmsg(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send message (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_setsockopt.3compat.html">nn_setsockopt(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set socket option (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_shutdown.3compat.html">nn_shutdown(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">shut down endpoint (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_socket.3compat.html">nn_socket(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create socket (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_strerror.3compat.html">nn_strerror(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return message for error (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nn_term.3compat.html">nn_term(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">terminate library (compatible API)</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_compat.3compat.html">nng_compat(3compat)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">compatibility with nanomsg 1.0</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_3http_supplemental_http_functions">Section 3http: Supplemental HTTP Functions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents supplemental HTTP (HyperText Transport Protocol)
+support functions that are available.</p>
+</div>
+<div class="paragraph">
+<p>These functions can be used in conjunction with the
+<a href="nng_ws.7.html">WebSocket</a> transport for Scalability Protocols, or they
+may be used to construct other types of applications that communicate
+using HTTP.</p>
+</div>
+<div class="paragraph">
+<p>It is also possible to combine the two, such that an HTTP server providing
+static or dynamic content can also be used to host one or more Scalability
+Protocols sockets.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_alloc.3http.html">nng_http_client_alloc(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP client</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">establish HTTP client connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_free.3http.html">nng_http_client_free(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP client</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_get_tls.3http.html">nng_http_client_get_tls(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP client TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_set_tls.3http.html">nng_http_client_set_tls(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP client TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_transact.3http.html">nng_http_client_transact(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">perform one HTTP transaction</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_close.3http.html">nng_http_conn_close(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read.3http.html">nng_http_conn_read(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read from HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read all from HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read_req.3http.html">nng_http_conn_read_req(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read HTTP request</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read_res.3http.html">nng_http_conn_read_res(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read HTTP response</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_transact.3http.html">nng_http_conn_transact(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">perform one HTTP transaction on connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write.3http.html">nng_http_conn_write(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write to HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write_all.3http.html">nng_http_conn_write_all(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write all to HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write_req.3http.html">nng_http_conn_write_req(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write HTTP request</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write_res.3http.html">nng_http_conn_write_res(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write HTTP response</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_collect_body.3http.html">nng_http_handler_collect_body(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP handler to collect request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_free.3http.html">nng_http_handler_free(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_get_data.3http.html">nng_http_handler_get_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return extra data for HTTP handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_data.3http.html">nng_http_handler_set_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set extra data for HTTP handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_host.3http.html">nng_http_handler_set_host(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set host for HTTP handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_method.3http.html">nng_http_handler_set_method(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP handler method</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_tree.3http.html">nng_http_handler_set_tree(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP handler to match trees</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_hijack.3http.html">nng_http_hijack(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">hijack HTTP server connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_add_header.3http.html">nng_http_req_add_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">add HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP request structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_copy_data.3http.html">nng_http_req_copy_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">copy HTTP request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_del_header.3http.html">nng_http_req_del_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">delete HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_free.3http.html">nng_http_req_free(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP request structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_data.3http.html">nng_http_req_get_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_header.3http.html">nng_http_req_get_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_method.3http.html">nng_http_req_get_method(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request method</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_uri.3http.html">nng_http_req_get_uri(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request URI</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_version.3http.html">nng_http_req_get_version(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request protocol version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_reset.3http.html">nng_http_req_reset(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reset HTTP request structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_data.3http.html">nng_http_req_set_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_header.3http.html">nng_http_req_set_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_method.3http.html">nng_http_req_set_method(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request method</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_uri.3http.html">nng_http_req_set_uri(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request URI</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_version.3http.html">nng_http_req_set_version(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request protocol version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_add_header.3http.html">nng_http_res_add_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">add HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP response structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_alloc_error.3http.html">nng_http_res_alloc_error(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP error response</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_copy_data.3http.html">nng_http_res_copy_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">copy HTTP response body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_del_header.3http.html">nng_http_res_del_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_free.3http.html">nng_http_res_free(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP response structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_data.3http.html">nng_http_res_get_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP response body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_header.3http.html">nng_http_res_get_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_reason.3http.html">nng_http_res_get_reason(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP response reason</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_status.3http.html">nng_http_res_get_status(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP status code</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_version.3http.html">nng_http_res_get_version(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP response protocol version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_reset.3http.html">nng_http_res_reset(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reset HTTP response structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_data.3http.html">nng_http_res_set_data(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_header.3http.html">nng_http_res_set_header(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_reason.3http.html">nng_http_res_set_reason(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response reason</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_status.3http.html">nng_http_res_set_status(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response status</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_version.3http.html">nng_http_res_set_version(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response protocol version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">add HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_del_handler.3http.html">nng_http_server_del_handler(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">delete HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_get_tls.3http.html">nng_http_server_get_tls(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP server TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get and hold HTTP server instance</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_release.3http.html">nng_http_server_release(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">release HTTP server instance</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_res_error.3http.html">nng_http_server_res_error(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">use HTTP server error page</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_set_error_file.3http.html">nng_http_server_set_error_file(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set custom HTTP error file</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_set_error_page.3http.html">nng_http_server_set_error_page(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set custom HTTP error page</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_set_tls.3http.html">nng_http_server_set_tls(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP server TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_start.3http.html">nng_http_server_start(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">start HTTP server</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_stop.3http.html">nng_http_server_stop(3http)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">stop HTTP server</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_3str_supplemental_tcp_functions">Section 3str: Supplemental TCP Functions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents supplemental byte stream functions that
+are available.</p>
+</div>
+<div class="paragraph">
+<p>These functions are made available to facilitate using raw byte stream
+connections with the NNG asynchronous I/O API.
+These byte streams may be useful for applications that need to
+communicate with raw TCP/IP or IPC streams instead of Scalability Protocols.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_close.3str.html">nng_stream_close(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_alloc.3str.html">nng_stream_dialer_alloc(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_close.3str.html">nng_stream_dialer_close(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_dial.3str.html">nng_stream_dialer_dial(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">initiate outgoing byte stream connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_free.3str.html">nng_stream_dialer_free(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_get.3str.html">nng_stream_dialer_get(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_set.3str.html">nng_stream_dialer_set(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_free.3str.html">nng_stream_free(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_get.3str.html">nng_stream_get(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">accept incoming byte stream connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_alloc.3str.html">nng_stream_listener_alloc(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_close.3str.html">nng_stream_listener_close(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_free.3str.html">nng_stream_listener_free(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_get.3str.html">nng_stream_listener_get(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_listen.3str.html">nng_stream_listener_listen(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">bind listener to configured address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_set.3str.html">nng_stream_listener_set(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_recv.3str.html">nng_stream_recv(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive from byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_send.3str.html">nng_stream_send(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send to byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_set.3str.html">nng_stream_set(3str)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on byte stream</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_3supp_supplemental_functions">Section 3supp: Supplemental Functions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents supplemental functions that are available.
+These functions are not intrinsic to building Scalability Protocols
+applications with this library.</p>
+</div>
+<div class="paragraph">
+<p>However, their use may facilitate writing portable applications by
+providing uniform functions for common application needs such as
+mutual exclusion locks, threading, time keeping, and similar needs.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_clock.3supp.html">nng_clock(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get time</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate condition variable</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_free.3supp.html">nng_cv_free(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free condition variable</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_until.3supp.html">nng_cv_until(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wait for condition or timeout</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_wait.3supp.html">nng_cv_wait(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wait for condition</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_wake.3supp.html">nng_cv_wake(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wake all waiters</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_wake1.3supp.html">nng_cv_wake1(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wake one waiter</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msleep.3supp.html">nng_msleep(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sleep milliseconds</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_free.3supp.html">nng_mtx_free(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_lock.3supp.html">nng_mtx_lock(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">lock mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unlock mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_opts_parse.3supp.html">nng_opts_parse(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">parse command line options</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_random.3supp.html">nng_random(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get random number</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_thread_create.3supp.html">nng_thread_create(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create thread</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_thread_destroy.3supp.html">nng_thread_destroy(3supp)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reap thread</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_3tls_supplemental_tls_functions">Section 3tls: Supplemental TLS Functions</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents supplemental TLS (Transport Layer Security)
+functions that are available.
+TLS support is available when using Scalability Protocols with
+the <a href="nng_tls.7.html">TLS</a> transport, or when using WebSocket, either
+with the <a href="nng_ws.7.html">WebSocket</a> transport for Scalability Protocols,
+or combined with other HTTP capabilities.</p>
+</div>
+<div class="paragraph">
+<p>These functions depend on library support that is not included directly
+with <em>NNG</em> however, so their presence will depend on whether this
+additional support was present and enabled with <em>libnng</em> was built.</p>
+</div>
+<div class="paragraph">
+<p>Currently, this extra support can be provided by the
+<a href="https://tls.mbed.org">mbedTLS library</a>.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate TLS configuration object</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_auth_mode.3tls.html">nng_tls_config_auth_mode(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">configure authentication mode</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_ca_chain.3tls.html">nng_tls_config_ca_chain(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">configure certificate authority certificate chain</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_ca_file.3tls.html">nng_tls_config_ca_file(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">load certificate authority from file</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_cert_key_file.3tls.html">nng_tls_config_cert_key_file(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">load own certificate and key from file</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_free.3tls.html">nng_tls_config_free(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">deallocate a TLS configuration object</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_hold.3tls.html">nng_tls_config_hold(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">hold TLS configuration object</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_own_cert.3tls.html">nng_tls_config_own_cert(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">configure own certificate and key</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_server_name.3tls.html">nng_tls_config_server_name(3tls)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">configure remote server name</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_5_macros_and_types">Section 5: Macros and Types</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This section documents core macros and types that are available.</p>
+</div>
+<div class="paragraph">
+<p>These are the core types and macros that most Scalabilty Protocols
+applications need will use.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio.5.html">nng_aio(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">asynchronous I/O handle</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx.5.html">nng_ctx(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">protocol context</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer.5.html">nng_dialer(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_duration.5.html">nng_duration(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">relative time in milliseconds</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_iov.5.html">nng_iov(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">scatter/gather element</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ipc_options.5.html">nng_ipc_options(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IPC-specific options</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener.5.html">nng_listener(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg.5.html">nng_msg(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_options.5.html">nng_options(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">socket, dialer, listener, and pipe options</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe.5.html">nng_pipe(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">communications pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sockaddr.5.html">nng_sockaddr(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">socket address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sockaddr_in.5.html">nng_sockaddr_in(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IPv4 socket address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sockaddr_in6.5.html">nng_sockaddr_in6(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IPv6 socket address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sockaddr_inproc.5.html">nng_sockaddr_inproc(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">inproc socket address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sockaddr_ipc.5.html">nng_sockaddr_ipc(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IPC socket address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sockaddr_zt.5.html">nng_sockaddr_zt(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ZeroTier socket address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_socket.5.html">nng_socket(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">socket handle</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat.5.html">nng_stat(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">statistic</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream.5.html">nng_stream(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tcp.5.html">nng_tcp(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TCP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tcp_options.5.html">nng_tcp_options(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TTCP-specific options</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls.5.html">nng_tls(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TLS over TCP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config.5.html">nng_tls_config(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_options.5.html">nng_tls_options(5)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TLS-specific options</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_section_7_protocols_and_transports">Section 7: Protocols and Transports</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This sections documents various protocols and transports that are
+available in the distribution.</p>
+</div>
+<div class="paragraph">
+<p>
+Protocols represent &#8220;patterns&#8221; of communication, such as
+request/reply, publish/subscribe, and so forth.
+A given <a href="nng_socket.5.html">socket</a> is created with exactly one protocol, and that
+protocol defines the key behavior of the socket.</p>
+</div>
+<div class="paragraph">
+<p>
+Conversely, transports are the underlying mechansims by which messages
+are moved between participants, such as TCP/IP or UNIX domain IPC.
+A given <a href="nng_socket.5.html">socket</a> may be using several transports at the same
+time.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 37.5%;">
+<col style="width: 62.5%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng.7.html">nng(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">nanomsg next generation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_bus.7.html">nng_bus(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">bus protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_inproc.7.html">nng_inproc(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">intra-process transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ipc.7.html">nng_ipc(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">IPC transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pair.7.html">nng_pair(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">pair protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pub.7.html">nng_pub(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">publisher protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pull.7.html">nng_pull(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">pull protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_push.7.html">nng_push(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">push protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_rep.7.html">nng_rep(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reply protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_req.7.html">nng_req(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">request protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_respondent.7.html">nng_respondent(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">respondent protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sub.7.html">nng_sub(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">subscriber protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_surveyor.7.html">nng_surveyor(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">surveyor protocol</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tcp.7.html">nng_tcp(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TCP/IP transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls.7.html">nng_tls(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">TLS transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ws.7.html">nng_ws(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">WebSocket transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_zerotier.7.html">nng_zerotier(7)</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">ZeroTier transport</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/libnng.3.html b/man/v1.2.4/libnng.3.html
new file mode 100644
index 00000000..56c8d57c
--- /dev/null
+++ b/man/v1.2.4/libnng.3.html
@@ -0,0 +1,1442 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>libnng(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>libnng(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_common_functions">Common Functions</a></li>
+<li><a href="#_socket_functions">Socket Functions</a></li>
+<li><a href="#_connection_management">Connection Management</a></li>
+<li><a href="#_message_handling_functions">Message Handling Functions</a></li>
+<li><a href="#_asynchronous_operations">Asynchronous Operations</a></li>
+<li><a href="#_protocols">Protocols</a></li>
+<li><a href="#_transports">Transports</a></li>
+<li><a href="#_protocol_contexts">Protocol Contexts</a></li>
+<li><a href="#_statistics">Statistics</a></li>
+<li><a href="#_url_object">URL Object</a></li>
+<li><a href="#_supplemental_api">Supplemental API</a></li>
+<li><a href="#_byte_streams">Byte Streams</a></li>
+<li><a href="#_http_support">HTTP Support</a></li>
+<li><a href="#_tls_configuration_objects">TLS Configuration Objects</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>libnng - nanomsg next generation library</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><strong>cc</strong> [<em>flags</em>] <em>files</em> <strong>-lnng</strong> [<em>libraries</em>]</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <a href="nng.7.html"><em>nng</em></a> library provides a common messaging framework
+intended to solve common communication problems in distributed applications.</p>
+</div>
+<div class="paragraph">
+<p>It provides a C language API.</p>
+</div>
+<div class="sect2">
+<h3 id="_common_functions">Common Functions</h3>
+<div class="paragraph">
+<p>The following common functions exist in <em>libnng</em>.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_alloc.3.html">nng_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate memory</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_free.3.html">nng_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free memory</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_strdup.3.html">nng_strdup()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">duplicate string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_strerror.3.html">nng_strerror()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return an error description</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_strfree.3.html">nng_strfree()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free string</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_version.3.html">nng_version()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">report library version</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_socket_functions">Socket Functions</h3>
+<div class="paragraph">
+<p>The following functions operate on sockets.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_close.3.html">nng_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dial.3.html">nng_dial()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create and start dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_getopt.3.html">nng_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get socket option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listen.3.html">nng_listen()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create and start listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_recv.3.html">nng_recv()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive data</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_send.3.html">nng_send()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send data</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_setopt.3.html">nng_setopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set socket option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_socket_get.3.html">nng_socket_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get socket option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_socket_id.3.html">nng_socket_id()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get numeric socket identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_socket_set.3.html">nng_socket_set()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set socket option</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_connection_management">Connection Management</h3>
+<div class="paragraph">
+<p>The following functions are used with either listeners, or dialers.
+Listeners accept incoming connection requests, and dialers make them.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dial.3.html">nng_dial()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create and start dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_close.3.html">nng_dialer_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_create.3.html">nng_dialer_create()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_get.3.html">nng_dialer_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_getopt.3.html">nng_dialer_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_id.3.html">nng_dialer_id()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get numeric dialer identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_set.3.html">nng_dialer_set()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_setopt.3.html">nng_dialer_setopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set dialer option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_dialer_start.3.html">nng_dialer_start()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">start dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listen.3.html">nng_listen()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create and start listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_close.3.html">nng_listener_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_create.3.html">nng_listener_create()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_get.3.html">nng_listener_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_getopt.3.html">nng_listener_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_id.3.html">nng_listener_id()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get numeric listener identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_set.3.html">nng_listener_set()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_setopt.3.html">nng_listener_setopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set listener option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_listener_start.3.html">nng_listener_start()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">start listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_close.3.html">nng_pipe_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_dialer.3.html">nng_pipe_dialer()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return dialer that created pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_get.3.html">nng_pipe_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get pipe option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_getopt.3.html">nng_pipe_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get pipe option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_id.3.html">nng_pipe_id()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get numeric pipe identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_listener.3.html">nng_pipe_listener()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return listener that created pipe</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_notify.3.html">nng_pipe_notify()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register pipe notification callback</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pipe_socket.3.html">nng_pipe_socket()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return owning socket for pipe</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_message_handling_functions">Message Handling Functions</h3>
+<div class="paragraph">
+<p>Applications desiring to use the richest part of <em>libnng</em> 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.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_alloc.3.html">nng_msg_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_append.3.html">nng_msg_append()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">append to message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_body.3.html">nng_msg_body()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_chop.3.html">nng_msg_chop()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from end of message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_clear.3.html">nng_msg_clear()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">clear message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_dup.3.html">nng_msg_dup()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">duplicate a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_free.3.html">nng_msg_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_get_pipe.3.html">nng_msg_get_pipe()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get pipe for message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_insert.3.html">nng_msg_insert()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">prepend to message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_len.3.html">nng_msg_len()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return the message body length</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_realloc.3.html">nng_msg_realloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reallocate a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_set_pipe.3.html">nng_msg_set_pipe()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set pipe for message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_trim.3.html">nng_msg_trim()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from start of message body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_recvmsg.3.html">nng_recvmsg()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive a message</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sendmsg.3.html">nng_sendmsg()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send a message</p></td>
+</tr>
+</tbody>
+</table>
+<div class="sect3">
+<h4 id="_message_header_handling">Message Header Handling</h4>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header.3.html">nng_msg_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_append.3.html">nng_msg_header_append()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">append to message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_chop.3.html">nng_msg_header_chop()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from end of message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_clear.3.html">nng_msg_header_clear()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">clear message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_insert.3.html">nng_msg_header_insert()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">prepend to message header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_len.3.html">nng_msg_header_len()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return the message header length</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msg_header_trim.3.html">nng_msg_header_trim()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">remove data from start of message header</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_asynchronous_operations">Asynchronous Operations</h3>
+<div class="paragraph">
+<p>Most applications will interact with <em>nng</em> synchronously; that is that
+functions such as <a href="nng_send.3.html"><code>nng_send()</code></a> will block the calling
+thread until the operation has completed.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>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
+(&#8220;callback&#8221;) is executed.</p>
+</div>
+<div class="paragraph">
+<p>A context structure, an <a href="nng_aio.5.html"><code>nng_aio</code></a>, is allocated and
+associated with each asynchronous operation.
+Only a single asynchronous operation may be associated with an
+<code>nng_aio</code> at any time.</p>
+</div>
+<div class="paragraph">
+<p>The following functions are used in the asynchronous model:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_abort.3.html">nng_aio_abort()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">abort asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_alloc.3.html">nng_aio_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate asynchronous I/O handle</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_begin.3.html">nng_aio_begin()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">begin asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_cancel.3.html">nng_aio_cancel()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">cancel asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_count.3.html">nng_aio_count()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return number of bytes transferred</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_defer.3.html">nng_aio_defer()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">defer asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_finish.3.html">nng_aio_finish()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">finish asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_free.3.html">nng_aio_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free asynchronous I/O handle</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_get_input.3.html">nng_aio_get_input()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return input parameter</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_get_msg.3.html">nng_aio_get_msg()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get message from an asynchronous receive</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_get_output.3.html">nng_aio_get_output()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return output result</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_result.3.html">nng_aio_result()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return result of asynchronous operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_input.3.html">nng_aio_set_input()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set input parameter</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_iov.3.html">nng_aio_set_iov()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set scatter/gather vector</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_msg.3.html">nng_aio_set_msg()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set message for an asynchronous send</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_output.3.html">nng_aio_set_output()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set output result</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_set_timeout.3.html">nng_aio_set_timeout()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set asynchronous I/O timeout</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_stop.3.html">nng_aio_stop()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">stop asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_aio_wait.3.html">nng_aio_wait()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wait for asynchronous I/O operation</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_recv_aio.3.html">nng_recv_aio()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive message asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_send_aio.3.html">nng_send_aio()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send message asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sleep_aio.3.html">nng_sleep_aio()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sleep asynchronously</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_protocols">Protocols</h3>
+<div class="paragraph">
+<p>The following functions are used to construct a socket with a specific protocol:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_bus_open.3.html">nng_bus_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a bus socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pair_open.3.html">nng_pair_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a pair socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pub_open.3.html">nng_pub_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a pub socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_pull_open.3.html">nng_pull_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a pull socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_push_open.3.html">nng_push_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a push socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_rep_open.3.html">nng_rep_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a rep socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_req_open.3.html">nng_req_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a req socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_respondent_open.3.html">nng_respondent_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a respondent socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_sub_open.3.html">nng_sub_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a sub socket</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_surveyor_open.3.html">nng_surveyor_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">open a surveyor socket</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_transports">Transports</h3>
+<div class="paragraph">
+<p>The following functions are used to register a transport for use.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_inproc_register.3.html">nng_inproc_register()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register inproc transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ipc_register.3.html">nng_ipc_register()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register IPC transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tcp_register.3.html">nng_tcp_register()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register TCP transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_register.3.html">nng_tls_register()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register TLS transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ws_register.3.html">nng_ws_register()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register WebSocket transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_wss_register.3.html">nng_wss_register()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register WebSocket Secure transport</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_zt_register.3.html">nng_zt_register()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">register ZeroTier transport</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_protocol_contexts">Protocol Contexts</h3>
+<div class="paragraph">
+<p>The following functions are useful to separate the protocol processing
+from a socket object, into a separate context.
+This can allow multiple contexts to be created on a single socket for
+concurrent applications.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_close.3.html">nng_ctx_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close context</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_get.3.html">nng_ctx_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get context option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_getopt.3.html">nng_ctx_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get context option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_id.3.html">nng_ctx_id()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get numeric context identifier</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_open.3.html">nng_ctx_open()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create context</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_recv.3.html">nng_ctx_recv()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive message using context asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_send.3.html">nng_ctx_send()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send message using context asynchronously</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_set.3.html">nng_ctx_set()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set context option</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_ctx_setopt.3.html">nng_ctx_setopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set context option</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_statistics">Statistics</h3>
+<div class="paragraph">
+<p>The following functions provide access to statistics which can be used
+to observe program behaviors and as an aid in troubleshooting.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_child.3.html">nng_stat_child()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get child statistic</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_desc.3.html">nng_stat_name()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic description</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_name.3.html">nng_stat_name()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic name</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_next.3.html">nng_stat_next()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get next statistic</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_string.3.html">nng_stat_string()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic string value</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_timestamp.3.html">nng_stat_timestamp()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic timestamp</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_type.3.html">nng_stat_type()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic type</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_unit.3.html">nng_stat_unit()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic unit</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stat_value.3.html">nng_stat_valueg()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistic value</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stats_free.3.html">nng_stats_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free statistics</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stats_get.3.html">nng_stats_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get statistics</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_url_object">URL Object</h3>
+<div class="paragraph">
+<p>Common functionality is supplied for parsing and handling
+universal resource locators (URLS).</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_url_clone.3.html">nng_url_clone()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">clone URL structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_url_free.3.html">nng_url_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free URL structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_url_parse.3.html">nng_url_parse()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create URL structure from string</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_supplemental_api">Supplemental API</h3>
+<div class="paragraph">
+<p>These supplemental functions are not intrinsic to building
+network applications with <em>NNG</em>, but they are made available
+as a convenience to aid in creating portable applications.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_clock.3supp.html">nng_clock()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get time</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_alloc.3supp.html">nng_cv_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate condition variable</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_free.3supp.html">nng_cv_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free condition variable</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_until.3supp.html">nng_cv_until()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wait for condition or timeout</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_wait.3supp.html">nng_cv_wait()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wait for condition</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_wake.3supp.html">nng_cv_wake()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wake all waiters</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_cv_wake1.3supp.html">nng_cv_wake1()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">wake one waiter</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_msleep.3supp.html">nng_msleep()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">sleep for milliseconds</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_free.3supp.html">nng_mtx_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_lock.3supp.html">nng_mtx_lock()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">lock mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">unlock mutex</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_opts_parse.3supp.html">nng_opts_parse()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">parse command line options</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_random.3supp.html">nng_random()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get random number</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_thread_create.3supp.html">nng_thread_create()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">create thread</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_thread_destroy.3supp.html">nng_thread_destroy()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reap thread</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_byte_streams">Byte Streams</h3>
+<div class="paragraph">
+<p>These functions are available for use with byte streams.
+They are considered low-level, for uses where the higher level functions
+using Scalability Protocols are inappropriate.</p>
+</div>
+<div class="paragraph">
+<p>Byte streams, represented by
+<a href="nng_stream.5.html"><code>nng_stream</code></a> objects, correspond to underlying
+connections such as TCP connections or named pipes.
+They are created by either
+<a href="nng_stream_dialer.5.html"><code>nng_stream_dialer</code></a> or
+<a href="nng_stream_listener.5.html"><code>nng_stream_listener</code></a> objects.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_close.3str.html">nng_stream_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_alloc.3str.html">nng_stream_dialer_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_close.3str.html">nng_stream_dialer_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_dial.3str.html">nng_stream_dialer_dial()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">initiate outgoing byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_free.3str.html">nng_stream_dialer_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_get.3str.html">nng_stream_dialer_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_dialer_set.3str.html">nng_stream_dialer_set()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on byte stream dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_free.3str.html">nng_stream_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_get.3str.html">nng_stream_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">accept incoming byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_alloc.3str.html">nng_stream_listener_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_close.3str.html">nng_stream_listener_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_free.3str.html">nng_stream_listener_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_get.3str.html">nng_stream_listener_get()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_listen.3str.html">nng_stream_listener_listen()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">bind byte stream listener to address</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_listener_set.3str.html">nng_stream_listener_set()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on byte stream listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_recv.3str.html">nng_stream_recv()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive from byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_send.3str.html">nng_stream_send()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send to byte stream</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_stream_set.3str.html">nng_stream_set()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on byte stream</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_http_support">HTTP Support</h3>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="sect3">
+<h4 id="_common_http_functions">Common HTTP Functions</h4>
+<div class="paragraph">
+<p>The following functions are used to work with HTTP requests, responses,
+and connections.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_close.3http.html">nng_http_conn_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read.3http.html">nng_http_conn_read()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read from HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read all from HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read_req.3http.html">nng_http_conn_read_req()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read HTTP request</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_read_res.3http.html">nng_http_conn_read_res()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">read HTTP response</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write.3http.html">nng_http_conn_write()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write to HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write_all.3http.html">nng_http_conn_write_all()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write all to HTTP connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write_req.3http.html">nng_http_conn_write_req()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write HTTP request</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_write_res.3http.html">nng_http_conn_write_res()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">write HTTP response</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_add_header.3http.html">nng_http_req_add_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">add HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP request structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_copy_data.3http.html">nng_http_req_copy_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">copy HTTP request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_del_header.3http.html">nng_http_req_del_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">delete HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_free.3http.html">nng_http_req_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP request structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_data.3http.html">nng_http_req_get_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_header.3http.html">nng_http_req_get_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_method.3http.html">nng_http_req_get_method()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request method</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_uri.3http.html">nng_http_req_get_uri()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request URI</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_get_version.3http.html">nng_http_req_get_version()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP request protocol version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_reset.3http.html">nng_http_req_reset()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reset HTTP request structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_data.3http.html">nng_http_req_set_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_header.3http.html">nng_http_req_set_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_method.3http.html">nng_http_req_set_method()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request method</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_uri.3http.html">nng_http_req_set_uri()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request URI</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_req_set_version.3http.html">nng_http_req_set_version()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP request protocol version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_add_header.3http.html">nng_http_res_add_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">add HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP response structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_alloc_error.3http.html">nng_http_res_alloc_error()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP error response</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_copy_data.3http.html">nng_http_res_copy_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">copy HTTP response body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_del_header.3http.html">nng_http_res_del_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">delete HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_free.3http.html">nng_http_res_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP response structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_data.3http.html">nng_http_res_get_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP response body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_header.3http.html">nng_http_res_get_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_reason.3http.html">nng_http_res_get_reason()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP response reason</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_status.3http.html">nng_http_res_get_status()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP response status</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_get_version.3http.html">nng_http_res_get_version()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return HTTP response protocol version</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_reset.3http.html">nng_http_res_reset()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">reset HTTP response structure</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_data.3http.html">nng_http_res_set_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_header.3http.html">nng_http_res_set_header()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response header</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_reason.3http.html">nng_http_res_set_reason()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response reason</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_status.3http.html">nng_http_res_set_status()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response status</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_res_set_version.3http.html">nng_http_res_set_version()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP response protocol version</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_http_client_functions">HTTP Client Functions</h4>
+<div class="paragraph">
+<p>These functions are intended for use with HTTP client applications.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_alloc.3http.html">nng_http_client_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP client</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_connect.3http.html">nng_http_client_connect()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">establish HTTP client connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_free.3http.html">nng_http_client_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP client</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_get_tls.3http.html">nng_http_client_get_tls()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP client TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_set_tls.3http.html">nng_http_client_set_tls()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP client TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_client_transact.3http.html">nng_http_client_transact()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">perform one HTTP transaction</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_conn_transact.3http.html">nng_http_conn_transact()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">perform one HTTP transaction on connection</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="sect3">
+<h4 id="_http_server_functions">HTTP Server Functions</h4>
+<div class="paragraph">
+<p>These functions are intended for use with HTTP server applications.</p>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_collect_body.3http.html">nng_http_handler_collect_body()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP handler to collect request body</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_free.3http.html">nng_http_handler_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_get_data.3http.html">nng_http_handler_get_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">return extra data for HTTP handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_data.3http.html">nng_http_handler_set_data()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set extra data for HTTP handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_host.3http.html">nng_http_handler_set_host()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set host for HTTP handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_method.3http.html">nng_http_handler_set_method()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP handler method</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_handler_set_tree.3http.html">nng_http_handler_set_tree()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP handler to match trees</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_hijack.3http.html">nng_http_hijack()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">hijack HTTP server connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">add HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_del_handler.3http.html">nng_http_server_del_handler()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">delete HTTP server handler</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_get_tls.3http.html">nng_http_server_get_tls()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get HTTP server TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_hold.3http.html">nng_http_server_hold()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get and hold HTTP server instance</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_release.3http.html">nng_http_server_release()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">release HTTP server instance</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_set_error_file.3http.html">nng_http_server_set_error_file()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set custom HTTP error file</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_set_error_page.3http.html">nng_http_server_set_error_page()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set custom HTTP error page</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_set_tls.3http.html">nng_http_server_set_tls()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set HTTP server TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_res_error.3http.html">nng_http_server_res_error()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">use HTTP server error page</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_start.3http.html">nng_http_server_start()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">start HTTP server</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_http_server_stop.3http.html">nng_http_server_stop()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">stop HTTP server</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_tls_configuration_objects">TLS Configuration Objects</h3>
+<div class="paragraph">
+<p>The following functions are used to manipulate transport layer security
+(TLS) configuration objects. Most of these functions will not be used even
+by TLS applications.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions will only be present if the library has been built
+with TLS support.
+</td>
+</tr>
+</table>
+</div>
+<table class="tableblock frame-all grid-all stretch">
+<colgroup>
+<col style="width: 50%;">
+<col style="width: 50%;">
+</colgroup>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_close.3tls.html">nng_tls_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close TLS connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_auth_mode.3tls.html">nng_tls_config_auth_mode()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set authentication mode</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_ca_chain.3tls.html">nng_tls_config_ca_chain()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set certificate authority chain</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_ca_file.3tls.html">nng_tls_config_ca_file()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">load certificate authority from file</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_cert_key_file.3tls.html">nng_tls_config_cert_key_file()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">load own certificate and key from file</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_own_cert.3tls.html">nng_tls_config_own_cert()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set own certificate and key</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_free.3tls.html">nng_tls_config_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free TLS configuration</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_config_server_name.3tls.html">nng_tls_config_server_name()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set remote server name</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_dialer_alloc.3tls.html">nng_tls_dialer_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate TLS dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_dialer_close.3tls.html">nng_tls_dialer_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close TLS dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_dialer_dial.3tls.html">nng_tls_dialer_dial()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">initiate outgoing TLS connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_dialer_free.3tls.html">nng_tls_dialer_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free TLS dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_dialer_getopt.3tls.html">nng_tls_dialer_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from TLS dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_dialer_setopt.3tls.html">nng_tls_dialer_setopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on TLS dialer</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_free.3tls.html">nng_tls_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free TLS connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_getopt.3tls.html">nng_tls_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from TLS connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_listener_accept.3tls.html">nng_tls_listener_accept()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">accept incoming TLS connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_listener_alloc.3tls.html">nng_tls_listener_alloc()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">allocate TLS listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_listener_close.3tls.html">nng_tls_listener_close()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">close TLS listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_listener_free.3tls.html">nng_tls_listener_free()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">free TLS listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_listener_getopt.3tls.html">nng_tls_listener_getopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">get option from TLS listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_listener_listen.3tls.html">nng_tls_listener_listen()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">bind TLS listener to port</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_listener_setopt.3tls.html">nng_tls_listener_setopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on TLS listener</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_recv.3tls.html">nng_tls_recv()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">receive from TLS connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_send.3tls.html">nng_tls_send()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">send to TLS connection</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="nng_tls_setopt.3tls.html">nng_tls_setopt()</a></p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">set option on TLS connection</p></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_allocmsg.3compat.html b/man/v1.2.4/nn_allocmsg.3compat.html
new file mode 100644
index 00000000..45999bed
--- /dev/null
+++ b/man/v1.2.4/nn_allocmsg.3compat.html
@@ -0,0 +1,145 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_allocmsg(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_allocmsg(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_allocmsg - allocate message (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nn_allocmsg</span><span class="tok-p">(</span><span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">type</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_allocmsg()</code> allocates a message structure of size <em>size</em>, and is
+primarily used to support zero-copy send operations, making use of the
+<code>NNG_MSG</code> special size indicator.
+The value returned is a pointer to the start of the message payload buffer.</p>
+</div>
+<div class="paragraph">
+<p>The value of <em>size</em> must be positive, and small enough to hold reasonable
+message data plus book-keeping information.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value of <em>type</em> <strong>must</strong> be zero.
+(This argument was reserved to support different kinds of memory spaces
+for RDMA devices, but this was never developed in the legacy API.)</p>
+</div>
+<div class="paragraph">
+<p>The returned message must be disposed of by either
+<a href="nn_freemsg.3compat.html"><code>nn_freemsg()</code></a> or
+<a href="nn_send.3compat.html"><code>nn_send()</code></a> when the caller is finished with it.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns a pointer to message buffer space, or <code>NULL</code>
+on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>size</em> or <em>type</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETERM</code>
+</td>
+<td class="hdlist2">
+<p>The library is shutting down.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_freemsg.3compat.html">nn_freemsg(3compat)</a>,
+<a href="nn_reallocmsg.3compat.html">nn_reallocmsg(3compat)</a>,
+<a href="nn_send.3compat.html">nn_send(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_bind.3compat.html b/man/v1.2.4/nn_bind.3compat.html
new file mode 100644
index 00000000..8935b784
--- /dev/null
+++ b/man/v1.2.4/nn_bind.3compat.html
@@ -0,0 +1,169 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_bind(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_bind(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_bind - accept connections from remote peers (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-n">nn_bind</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">)</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_bind()</code> function arranges for the socket <em>sock</em> to
+accept connections at the address specified by <em>url</em>.
+An &#8220;endpoint identifier&#8221; for this socket&#8217;s association with the <em>url</em> is
+returned to the caller on success.
+This ID can be used with <a href="nn_shutdown.3compat.html"><code>nn_shutdown()</code></a> to
+&#8220;unbind&#8221; the socket from the address at <em>url</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The bind operation is performed asynchronously, and may not have
+completed before this function returns control to the caller.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Only transports supported by legacy <em>libnanomsg</em> may be
+used with this function.
+In particular, only the schemes <code>tcp://</code>, <code>ipc://</code>, <code>inproc://</code>, and <code>ws://</code> are
+supported with this function.
+(Use the <a href="libnng.3.html">modern API</a> to use other schemes.)
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns a positive identifier on success, and -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EADDRINUSE</code>
+</td>
+<td class="hdlist2">
+<p>The address specified by <em>url</em> is already in use.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EADDRNOTAVAIL</code>
+</td>
+<td class="hdlist2">
+<p>The address specified by <em>url</em> is not available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>url</em> was supplied.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_connect.3compat.html">nn_connect(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_shutdown.3compat.html">nn_shutdown(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_close.3compat.html b/man/v1.2.4/nn_close.3compat.html
new file mode 100644
index 00000000..223bb9e9
--- /dev/null
+++ b/man/v1.2.4/nn_close.3compat.html
@@ -0,0 +1,119 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_close(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_close(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_close - close socket (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_close</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_close()</code> function closes the socket <em>sock</em>.
+Any operations that are currently in progress will be terminated, and will
+fail with error <code>EBADF</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns zero on success, and -1 on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETERM</code>
+</td>
+<td class="hdlist2">
+<p>The library is shutting down.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_cmsg.3compat.html b/man/v1.2.4/nn_cmsg.3compat.html
new file mode 100644
index 00000000..8c13c466
--- /dev/null
+++ b/man/v1.2.4/nn_cmsg.3compat.html
@@ -0,0 +1,134 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_cmsg(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_cmsg(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_cmsg - message control data (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">struct</span> <span class="tok-n">nn_cmsghdr</span> <span class="tok-p">{</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">cmsg_len</span><span class="tok-p">;</span>
+ <span class="tok-kt">int</span> <span class="tok-n">cmsg_level</span><span class="tok-p">;</span>
+ <span class="tok-kt">int</span> <span class="tok-n">cmsg_type</span><span class="tok-p">;</span>
+<span class="tok-p">};</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_cmsghdr</code> structure describes a block of control data that is
+associated with a message either sent by <a href="nn_sendmsg.3compat.html"><code>nn_sendmsg()</code></a>
+or received by <a href="nn_recvmsg.3compat.html"><code>nn_recvmsg()</code></a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This structure and supporting macros are provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Each header is followed by <code>cmsg_len</code> bytes of data, plus any padding required
+to align the structure.</p>
+</div>
+<div class="paragraph">
+<p>The only defined ancillary data at this time is the protocol headers used by
+the protocols.
+This uses <code>cmsg_level</code> set to <code>PROTO_SP</code> and the <code>cmsg_type</code> set to
+<code>SP_HDR</code>.
+The actual data for this will vary from depending on the protocol used.</p>
+</div>
+<div class="paragraph">
+<p>Convenience macros are provided to make working with these fields easier.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>struct nn_cmsghdr *NN_CMSG_FIRSTHDR(struct nn_msghdr *<em>hdr</em>)</code></dt>
+<dd>
+<p>This macro returns the first <code>struct nn_cmsghdr</code> header in <em>hdr</em>.</p>
+</dd>
+<dt class="hdlist1"><code>struct nn_cmsghdr *NN_CMSG_NXTHDR(struct nn_msghdr *<em>hdr</em>, struct nn_cmsghdr *<em>ch</em>)</code></dt>
+<dd>
+<p>This macro returns a pointer to the next <code>struct nn_cmsghdr</code> in <em>hdr</em> after <em>ch</em>.</p>
+</dd>
+<dt class="hdlist1"><code>void *NN_CMSG_DATA(struct nn_cmsghdr *<em>ch</em>)</code></dt>
+<dd>
+<p>This macro returns a pointer to the header-specific data for <em>ch</em>.</p>
+</dd>
+<dt class="hdlist1"><code>size_t NN_CMSG_ALIGN(size_t <em>len</em>)</code></dt>
+<dd>
+<p>This macro returns the length specified by <em>len</em>, plus any padding required to
+provide the necessary alignment for another structure.</p>
+</dd>
+<dt class="hdlist1"><code>size_t NN_CMSG_SPACE(size_t <em>len</em>)</code></dt>
+<dd>
+<p>This macro returns the amount of space required for a header, with <em>len</em>
+bytes of following data, and any necessary padding.</p>
+</dd>
+<dt class="hdlist1"><code>size_t NN_CMSG_LEN(size_t <em>len</em>)</code></dt>
+<dd>
+<p>This macro evaluates to the length of the header (including alignment),
+and the associated data of length <em>len</em>, but without any trailing padding
+to align for another header.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_recvmsg.3compat.html">nn_recvmsg(3compat)</a>,
+<a href="nn_sendmsg.3compat.html">nn_sendmsg(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_connect.3compat.html b/man/v1.2.4/nn_connect.3compat.html
new file mode 100644
index 00000000..9412f5d4
--- /dev/null
+++ b/man/v1.2.4/nn_connect.3compat.html
@@ -0,0 +1,161 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_connect(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_connect(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_connect - connect to remote peer (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-n">nn_connect</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">)</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_connect()</code> function arranges for the socket <em>sock</em> to
+initiate connection to a peer at the address specified by <em>url</em>.
+An &#8220;endpoint identifier&#8221; for this socket&#8217;s association with the <em>url</em> is
+returned to the caller on success.
+This ID can be used with <a href="nn_shutdown.3compat.html"><code>nn_shutdown()</code></a> to
+&#8220;unbind&#8221; the socket from the address at <em>url</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The connect operation is performed asynchronously, and may not have
+completed before this function returns control to the caller.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Only transports supported by legacy <em>libnanomsg</em> may be
+used with this function.
+In particular, only the schemes <code>tcp://</code>, <code>ipc://</code>, <code>inproc://</code>, and <code>ws://</code> are
+supported with this function.
+(Use the <a href="libnng.3.html">modern API</a> to use other schemes.)
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns a positive identifier success, and -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>ECONNREFUSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection attempt was refused.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>url</em> was supplied.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_bind.3compat.html">nn_bind(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_shutdown.3compat.html">nn_shutdown(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_device.3compat.html b/man/v1.2.4/nn_device.3compat.html
new file mode 100644
index 00000000..609e62e0
--- /dev/null
+++ b/man/v1.2.4/nn_device.3compat.html
@@ -0,0 +1,135 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_device(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_device(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_device - create forwarding device (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_device</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock1</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">sock2</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_device()</code> function is used to create a forwarder, where messages
+received on one of the two sockets <em>sock1</em> and <em>sock2</em> are forwarded to
+the other.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The two sockets must be compatible, and must be
+<a href="nng.7.html#raw_mode">raw mode</a>
+sockets.
+More detail about devices and how they can be used is available in the
+new style <a href="nng_device.3.html">nng_device()</a> documentation.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function blocks forever, and will return -1 only when
+one of the sockets is closed or an error occurs.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>One of the two sockets is invalid or not open, or has</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The sockets are not compatible with each other, or not both raw.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_errno.3compat.html b/man/v1.2.4/nn_errno.3compat.html
new file mode 100644
index 00000000..e14a0118
--- /dev/null
+++ b/man/v1.2.4/nn_errno.3compat.html
@@ -0,0 +1,290 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_errno(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_errno(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_errno - return most recent error (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_errno</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_errno()</code> function returns the error number corresponding to the
+most recent failed operation by the calling thread.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The error numbers returned from this function may include
+errors caused by system functions, which overlap the usual <code>errno</code> variable,
+and this function simply returns the value of <code>errno</code>.
+However, the values returned may include numeric values that are not
+defined by the system, but are unique to <em>libnanomsg</em>, such as <code>EFSM</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This library implements the following error numbers, in addition to any others
+that might be set for <code>errno</code> by the underlying system:</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the value of <code>errno</code>.
+If no operation has failed, then this will be zero.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EINTR</code>
+</td>
+<td class="hdlist2">
+<p>Operation interrupted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Invalid argument.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>Resource is busy.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Operation timed out.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ECONNREFUSED</code>
+</td>
+<td class="hdlist2">
+<p>Connection refused by peer.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>Invalid or closed socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>Operation would block.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>Protocol or option not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EADDRINUSE</code>
+</td>
+<td class="hdlist2">
+<p>Requested address is already in use.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EFSM</code>
+</td>
+<td class="hdlist2">
+<p>Protocol state incorrect.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EPROTO</code>
+</td>
+<td class="hdlist2">
+<p>Protocol error.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EHOSTUNREACH</code>
+</td>
+<td class="hdlist2">
+<p>Remote peer is unreachable.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EADDRNOTAVAIL</code>
+</td>
+<td class="hdlist2">
+<p>Requested address is not available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EACCES</code>
+</td>
+<td class="hdlist2">
+<p>Permission denied.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EMSGSIZE</code>
+</td>
+<td class="hdlist2">
+<p>Message is too large.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ECONNABORTED</code>
+</td>
+<td class="hdlist2">
+<p>Connection attempt aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>Connection reset by peer.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EEXIST</code>
+</td>
+<td class="hdlist2">
+<p>Resource already exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EMFILE</code>
+</td>
+<td class="hdlist2">
+<p>Too many open files.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOSPC</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient persistent storage.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_strerror.3compat.html">nn_strerror(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_freemsg.3compat.html b/man/v1.2.4/nn_freemsg.3compat.html
new file mode 100644
index 00000000..dd255a82
--- /dev/null
+++ b/man/v1.2.4/nn_freemsg.3compat.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_freemsg(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_freemsg(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_freemsg - free message (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_freemsg</span><span class="tok-p">(</span><span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_freemsg()</code> deallocates a message previously allocated with
+<a href="nn_allocmsg.3compat.html"><code>nn_allocmsg()</code></a> or similar functions.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function always returns 0.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_allocmsg.3compat.html">nn_allocmsg(3compat)</a>,
+<a href="#">nn_freemsg(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_get_statistic.3compat.html b/man/v1.2.4/nn_get_statistic.3compat.html
new file mode 100644
index 00000000..95d4a98d
--- /dev/null
+++ b/man/v1.2.4/nn_get_statistic.3compat.html
@@ -0,0 +1,99 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_get_statistic(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_get_statistic(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_get_statistic - get statistic (stub)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">uint64_t</span> <span class="tok-nf">nn_get_statistic</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_get_statistic()</code> function exists only as a stub, and always returns
+zero.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Zero.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_getsockopt.3compat.html b/man/v1.2.4/nn_getsockopt.3compat.html
new file mode 100644
index 00000000..15002a43
--- /dev/null
+++ b/man/v1.2.4/nn_getsockopt.3compat.html
@@ -0,0 +1,489 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_getsockopt(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_getsockopt(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_getsockopt - get socket option (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_getsockopt</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">level</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">option</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">szp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_getsockopt()</code> function gets a socket option on socket <em>sock</em>.
+The option retrieved is determined by the <em>level</em> and <em>option</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value pointed to by <em>szp</em> must be initialized to the size of the buffer
+pointed to by <em>val</em>.
+No more than this many bytes of the option will be copied into the destination
+buffer on success.
+On success, the value pointed to by <em>szp</em> will be updated with the actual
+size of the option.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+To determine the size to receive an option, first call this function
+with <em>val</em> set to <code>NULL</code> and the value addressed by <em>szp</em> initialized to zero.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>level</em> determines whether the option is a generic socket option,
+or is transport-specific.
+The values possible for level are as follows:</p>
+</div>
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NN_SOL_SOCKET</code>
+</td>
+<td class="hdlist2">
+<p>Generic socket option</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_IPC</code>
+</td>
+<td class="hdlist2">
+<p>Transport specific option for IPC.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_TCP</code>
+</td>
+<td class="hdlist2">
+<p>Transport specific option for TCP.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_WS</code>
+</td>
+<td class="hdlist2">
+<p>Transport specific option for WebSocket.</p>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The following generic socket options are possible (all are of type <code>int</code> and
+thus size 4, unless otherwise indicated.)</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SNDBUF</code></dt>
+<dd>
+<p>Send buffer size in bytes.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+In <em>nng</em> buffers are sized as a count of messages rather than
+bytes; accordingly this value is the <em>nng</em> queue depth multiplied by 1024
+(representing an estimate that the average message size is 1kB).
+Applications that have unusual message sizes may wish to adjust the value
+used here accordingly.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_RCVBUF</code></dt>
+<dd>
+<p>Receive buffer size in bytes.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The same caveats for <code>NN_SNDBUF</code> apply here as well.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SNDTIMEO</code></dt>
+<dd>
+<p>Send time-out in milliseconds.
+Send operations will fail with <code>ETIMEDOUT</code> if no message can be received
+after this many milliseconds have transpired since the operation was started.
+A value of -1 means that no timeout is applied.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RCVTIMEO</code></dt>
+<dd>
+<p>Receive time-out in milliseconds.
+Receive operations will fail with <code>ETIMEDOUT</code> if no message can be received
+after this many milliseconds have transpired since the operation was started.
+A value of -1 means that no timeout is applied.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RCVMAXSIZE</code></dt>
+<dd>
+<p>Maximum receive size in bytes.
+The socket will discard messages larger than this on receive.
+The default, 1MB, is intended to prevent denial-of-service attacks.
+The value -1 removes any limit.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RECONNECT_IVL</code></dt>
+<dd>
+<p>Reconnect interval in milliseconds.
+After an outgoing connection is closed or fails, the socket will
+automatically attempt to reconnect after this many milliseconds.
+This is the starting value for the time, and is used in the first
+reconnection attempt after a successful connection is made.
+The default is 100.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RECONNECT_IVL_MAX</code></dt>
+<dd>
+<p>Maximum reconnect interval in milliseconds.
+Subsequent reconnection attempts after a failed attempt are made at
+exponentially increasing intervals (back-off), but the interval is
+capped by this value.
+If this value is smaller than <code>NN_RECONNECT_IVL</code>, then no exponential
+back-off is performed, and each reconnect interval will be determined
+solely by <code>NN_RECONNECT_IVL</code>.
+The default is zero.</p>
+</dd>
+<dt class="hdlist1"><code>NN_LINGER</code></dt>
+<dd>
+<p>This option is always zero and exists only for compatibility.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This option was unreliable in early releases of <em>libnanomsg</em>, and
+is unsupported in <em>nng</em> and recent <em>libnanomsg</em> releases.
+Applications needing assurance of message delivery should either include an
+explicit notification (automatic with the <code>NN_REQ</code> protocol) or allow
+sufficient time for the socket to drain before closing the socket or exiting.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SNDPRIO</code></dt>
+<dd>
+<p>This option is not implemented at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RCVPRIO</code></dt>
+<dd>
+<p>This option is not implemented at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_IPV4ONLY</code></dt>
+<dd>
+<p>This option is not implemented at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_SOCKET_NAME</code></dt>
+<dd>
+<p>This option is a string, and represents the socket name.
+It can be changed to help with identifying different sockets with
+their different application-specific purposes.</p>
+</dd>
+<dt class="hdlist1"><code>NN_MAXTTL</code></dt>
+<dd>
+<p>Maximum &#8220;hops&#8221; through proxies and devices a message may go through.
+This value, if positive, provides some protection against forwarding loops in
+<a href="nng_device.3.html">device</a> chains.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not all protocols offer this protection, so care should still be used
+in configuring device forwarding.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_DOMAIN</code></dt>
+<dd>
+<p>This option of type <code>int</code> represents either the value <code>AF_SP</code> or <code>AF_SP_RAW</code>,
+corresponding to the value that the socket was created with.</p>
+</dd>
+<dt class="hdlist1"><code>NN_PROTOCOL</code></dt>
+<dd>
+<p>This option option of type <code>int</code> contains the numeric protocol number
+that the socket is used with.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RCVFD</code></dt>
+<dd>
+<p>This option returns a file descriptor suitable for use in with <code>poll()</code> or
+<code>select()</code> (or other system-specific polling functions).
+This descriptor will be readable when a message is available for receiving
+at the socket.
+This option is of type <code>int</code> on all systems except Windows, where it is of
+type <code>SOCKET</code>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The file descriptor should not be read or written by the application,
+and is not the same as any underlying descriptor used for network sockets.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SNDFD</code></dt>
+<dd>
+<p>This option returns a file descriptor suitable for use in with <code>poll()</code> or
+<code>select()</code> (or other system-specific polling functions).
+This descriptor will be readable when the socket is able to accept a message
+for sending.
+This option is of type <code>int</code> on all systems except Windows, where it is of
+type <code>SOCKET</code>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The file descriptor should not be read or written by the application,
+and is not the same as any underlying descriptor used for network sockets.
+Furthermore, the file descriptor should only be polled for <em>readability</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The following option is available for <code>NN_REQ</code> sockets
+using the <code>NN_REQ</code> level:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_REQ_RESEND_IVL</code></dt>
+<dd>
+<p>Request retry interval in milliseconds.
+If an <code>NN_REQ</code> socket does not receive a reply to a request within this
+period of time, the socket will automatically resend the request.
+The default value is 60000 (one minute).</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The following option is available for <code>NN_SURVEYOR</code> sockets
+using the <code>NN_SURVEYOR</code> level:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SURVEYOR_DEADLINE</code></dt>
+<dd>
+<p>Survey deadline in milliseconds for <code>NN_SURVEYOR</code> sockets.
+After sending a survey message, the socket will only accept responses
+from respondents for this long.
+Any responses arriving after this expires are silently discarded.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>In addition, the following transport specific options are offered:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_IPC_SEC_ATTR</code></dt>
+<dd>
+<p>This <code>NN_IPC</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_IPC_OUTBUFSZ</code></dt>
+<dd>
+<p>This <code>NN_IPC</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_IPC_INBUFSZE</code></dt>
+<dd>
+<p>This <code>NN_IPC</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_TCP_NODELAY</code></dt>
+<dd>
+<p>This <code>NN_TCP</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_WS_MSG_TYPE</code></dt>
+<dd>
+<p>This <code>NN_WS</code> option is not supported, as <em>nng</em> only supports binary messages
+in this implementation.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns zero on success, and -1 on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOPROTOOPT</code>
+</td>
+<td class="hdlist2">
+<p>The level and/or option is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The option, or the value passed, is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETERM</code>
+</td>
+<td class="hdlist2">
+<p>The library is shutting down.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EACCES</code>
+</td>
+<td class="hdlist2">
+<p>The option cannot be changed.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nn_close.3compat.html">nn_close(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="#">nn_getsockopt(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_poll.3compat.html b/man/v1.2.4/nn_poll.3compat.html
new file mode 100644
index 00000000..e6212e54
--- /dev/null
+++ b/man/v1.2.4/nn_poll.3compat.html
@@ -0,0 +1,230 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_poll(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_poll(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_poll - poll sockets (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-cp">#define NN_POLLIN 1</span>
+<span class="tok-cp">#define NN_POLLOUT 2</span>
+
+<span class="tok-k">struct</span> <span class="tok-n">nn_pollfd</span> <span class="tok-p">{</span>
+ <span class="tok-kt">int</span> <span class="tok-n">fd</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">events</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">revents</span><span class="tok-p">;</span>
+<span class="tok-p">};</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_poll</span><span class="tok-p">(</span><span class="tok-k">struct</span> <span class="tok-n">nn_pollfd</span> <span class="tok-o">*</span><span class="tok-n">pfds</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">npfd</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">timeout</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_poll()</code> function polls a group of sockets for readiness to send or receive.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The array of <em>nfds</em> sockets to poll for are passed into <em>pfds</em>.
+Each member of this array is initialized with the <code>fd</code> field set to
+the socket, and the <code>events</code> field set to a mask that can contain either or both
+of the flags <code>NN_POLLIN</code> and <code>NN_POLLOUT</code>.</p>
+</div>
+<div class="paragraph">
+<p>The flag <code>NN_POLLIN</code> indicates that a socket is ready for receiving without
+blocking (a message is available on the socket), and the flag <code>NN_POLLOUT</code>
+indicates that a socket is ready for sending without blocking.</p>
+</div>
+<div class="paragraph">
+<p>Upon success, the function returns the number of updates the <code>revents</code>
+field of each member of the <em>pfds</em> array, setting it to indicate
+whether the requested status is true or not.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <code>revents</code> field will only have a flag set if the corresponding
+flag was also set in the <code>events</code> field.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If the <em>timeout</em> field is positive, then this function will wait for
+up the that many milliseconds.
+If none of the requested events occurs before that timeout occurs, then
+the function will return -1 and set the error to <code>ETIMEDOUT</code>.</p>
+</div>
+<div class="paragraph">
+<p>If the <em>timeout</em> is zero, then this function will return immediately,
+after updating the current status of the sockets.</p>
+</div>
+<div class="paragraph">
+<p>If the <em>timeout</em> is -1, then the function waits forever, or until one of the
+requested events occurs.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This function is only suitable for use with sockets obtained with the
+<a href="nn_socket.3compat.html"><code>nn_socket()</code></a> function, and is not compatible
+with file descriptors obtained via any other means.
+This includes file descriptors obtained using the <code>NN_SNDFD</code> or <code>NN_RCVFD</code>
+options with <a href="nn_getsockopt.3compat.html"><code>nn_getsockopt()</code></a>
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is significantly less efficient than other polling
+or asynchronous I/O mechanisms, and is provided for API compatibility only.
+It&#8217;s use is discouraged.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is <strong>not</strong> supported on systems other than POSIX derived
+platforms and Windows.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the number of sockets with events on success, or -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>One of the sockets is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Operation timed out.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>This function is not supported on this platform.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_recv.3compat.html">nn_recv(3compat)</a>,
+<a href="nn_send.3compat.html">nn_send(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_reallocmsg.3compat.html b/man/v1.2.4/nn_reallocmsg.3compat.html
new file mode 100644
index 00000000..e240c766
--- /dev/null
+++ b/man/v1.2.4/nn_reallocmsg.3compat.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_reallocmsg(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_reallocmsg(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_reallocmsg - reallocate message (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nn_reallocmsg</span><span class="tok-p">(</span><span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">old</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_reallocmsg()</code> reallocates the message <em>old</em>, making it of size <em>size</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>On success, the contents of <em>old</em> are copied into the new message
+(truncating if appropriate), then <em>old</em> is deallocated, and a pointer
+to the new message payload is returned.</p>
+</div>
+<div class="paragraph">
+<p>On failure, the <em>old</em> message is unchanged, and the value <code>NULL</code> is returned
+to the caller.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns a pointer to message buffer space, or <code>NULL</code>
+on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>size</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETERM</code>
+</td>
+<td class="hdlist2">
+<p>The library is shutting down.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_allocmsg.3compat.html">nn_allocmsg(3compat)</a>,
+<a href="nn_freemsg.3compat.html">nn_freemsg(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_recv.3compat.html b/man/v1.2.4/nn_recv.3compat.html
new file mode 100644
index 00000000..ef54e8b3
--- /dev/null
+++ b/man/v1.2.4/nn_recv.3compat.html
@@ -0,0 +1,166 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_recv(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_recv(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_send - receive data (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-n">nn_recv</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">)</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_recv()</code> function receives a message from the socket <em>sock</em>.
+The message body must fit within <em>size</em> bytes, and will be stored
+at the location specified by <em>data</em>, unless <em>size</em> is the
+special value <code>NN_MSG</code>, indicating a zero-copy operation.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If <em>size</em> has the special value <code>NN_MSG</code>, then a zero-copy operation
+is performed.
+In this case, instead of copying the message data into the address
+specified by <em>data</em>, a new message large enough to hold the message data
+will be allocated (as if by the
+function <a href="nn_allocmsg.3compat.html"><code>nn_allocmsg()</code></a>), and the message
+payload will be stored accordingly.
+In this case, the value stored at <em>data</em> will not be message data,
+but a pointer to the message itself.
+In this case, on success, the caller shall take responsibility for
+the final disposition of the message (such as by sending it to
+another peer using <a href="nn_send.3compat.html"><code>nn_send()</code></a>) or
+<a href="nn_freemsg.3compat.html"><code>nn_freemsg()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> field may contain the special flag <code>NN_DONTWAIT</code>.
+In this case, if the no message is available for immediate receipt,
+the operation shall not block, but instead will fail with the error <code>EAGAIN</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the number of bytes sent on success, and -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EFSM</code>
+</td>
+<td class="hdlist2">
+<p>The socket cannot receive in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>This protocol cannot receive.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_recvmsg.3compat.html">nn_recvmsg(3compat)</a>,
+<a href="nn_send.3compat.html">nn_send(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_recvmsg.3compat.html b/man/v1.2.4/nn_recvmsg.3compat.html
new file mode 100644
index 00000000..f8eb1c3c
--- /dev/null
+++ b/man/v1.2.4/nn_recvmsg.3compat.html
@@ -0,0 +1,200 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_recvmsg(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_recvmsg(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_recvmsg - receive message (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_recvmsg</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-k">struct</span> <span class="tok-n">nn_msghdr</span> <span class="tok-o">*</span><span class="tok-n">hdr</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_recvmsg()</code> function receives a message into the header described by
+<em>hdr</em> using the socket <em>sock</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> field may contain the special flag <code>NN_DONTWAIT</code>.
+In this case, if no message is ready for receiving on <em>sock</em>,
+the operation shall not block, but instead will fail with the error <code>EAGAIN</code>.</p>
+</div>
+<div class="paragraph">
+<p>The <em>hdr</em> points to a structure of type <code>struct nn_msghdr</code>, which has the
+following definition:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-k">struct</span> <span class="tok-n">nn_iovec</span> <span class="tok-p">{</span>
+ <span class="tok-kt">void</span> <span class="tok-o">*</span> <span class="tok-n">iov_base</span><span class="tok-p">;</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">iov_len</span><span class="tok-p">;</span>
+<span class="tok-p">};</span>
+
+<span class="tok-k">struct</span> <span class="tok-n">nn_msghdr</span> <span class="tok-p">{</span>
+ <span class="tok-k">struct</span> <span class="tok-n">nn_iovec</span> <span class="tok-o">*</span><span class="tok-n">msg_iov</span><span class="tok-p">;</span>
+ <span class="tok-kt">int</span> <span class="tok-n">msg_iovlen</span><span class="tok-p">;</span>
+ <span class="tok-kt">void</span> <span class="tok-o">*</span> <span class="tok-n">msg_control</span><span class="tok-p">;</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">msg_controllen</span><span class="tok-p">;</span>
+<span class="tok-p">};</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>msg_iov</code> is an array of scatter items, permitting the message
+to be spread into different memory blocks.
+There are <code>msg_iovlen</code> elements in this array, each of which
+has the base address (<code>iov_base</code>) and length (<code>iov_len</code>) indicated.</p>
+</div>
+<div class="paragraph">
+<p>The last member of this array may have the <code>iov_len</code> field set to <code>NN_MSG</code>,
+in which case the function shall allocate a message buffer, and store the
+pointer to it at the address indicated by <code>iov_base</code>.
+This can help save an extra copy operation.
+The buffer should be deallocated by <a href="nn_freemsg.3compat.html"><code>nn_freemsg()</code></a>
+or similar when it is no longer needed.</p>
+</div>
+<div class="paragraph">
+<p>The values of <code>msg_control</code> and <code>msg_controllen</code> describe a buffer
+of ancillary data associated with the message.
+This is currently only useful to obtain the message headers
+used with <a href="nng.7.html#raw_mode">raw mode</a> sockets.
+In all other circumstances these fields should be zero.
+Details about this structure are covered in
+<a href="nn_cmsg.3compat.html"><code>nn_cmsg(3compat)</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the number of bytes received on success, and -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EFSM</code>
+</td>
+<td class="hdlist2">
+<p>The socket cannot receive in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>hdr</em> is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>This protocol cannot receive.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_cmsg.3compat.html">nn_cmsg(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_recv.3compat.html">nn_recv(3compat)</a>,
+<a href="nn_send.3compat.html">nn_send(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_send.3compat.html b/man/v1.2.4/nn_send.3compat.html
new file mode 100644
index 00000000..990428da
--- /dev/null
+++ b/man/v1.2.4/nn_send.3compat.html
@@ -0,0 +1,175 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_send(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_send(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_send - send data (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-n">nn_send</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">)</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_send()</code> function creates a message containing <em>data</em> (of size <em>size</em>),
+and sends using the socket <em>sock</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If <em>size</em> has the special value <code>NN_MSG</code>, then a zero-copy operation
+is performed.
+In this case, <em>data</em> points not to the message content itself, but instead
+is a pointer to the pointer, an extra level of pointer indirection.
+The message must have been previously allocated by
+<a href="nn_allocmsg.3compat.html"><code>nn_allocmsg()</code></a> or
+<a href="nn_recvmsg.3compat.html"><code>nn_recvmsg()</code></a><code>, using the same `NN_MSG</code> size.
+In this case, the &#8220;ownership&#8221; of the message shall remain with
+the caller, unless the function returns 0, indicating that the
+function has taken responsibility for delivering or disposing of the
+message.</p>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> field may contain the special flag <code>NN_DONTWAIT</code>.
+In this case, if the socket is unable to accept more data for sending,
+the operation shall not block, but instead will fail with the error <code>EAGAIN</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The send operation is performed asynchronously, and may not have
+completed before this function returns control to the caller.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the number of bytes sent on success, and -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EFSM</code>
+</td>
+<td class="hdlist2">
+<p>The socket cannot send in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>This protocol cannot send.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_recv.3compat.html">nn_recv(3compat)</a>,
+<a href="nn_sendmsg.3compat.html">nn_sendmsg(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_sendmsg.3compat.html b/man/v1.2.4/nn_sendmsg.3compat.html
new file mode 100644
index 00000000..4b1b4665
--- /dev/null
+++ b/man/v1.2.4/nn_sendmsg.3compat.html
@@ -0,0 +1,218 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_sendmsg(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_sendmsg(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_sendmsg - send message (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_sendmsg</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-k">struct</span> <span class="tok-n">nn_msghdr</span> <span class="tok-o">*</span><span class="tok-n">hdr</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_sendmsg()</code> function sends the message described by <em>hdr</em> using the
+socket <em>sock</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> field may contain the special flag <code>NN_DONTWAIT</code>.
+In this case, if the socket is unable to accept more data for sending,
+the operation shall not block, but instead will fail with the error <code>EAGAIN</code>.</p>
+</div>
+<div class="paragraph">
+<p>The <em>hdr</em> points to a structure of type <code>struct nn_msghdr</code>, which has the
+following definition:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-k">struct</span> <span class="tok-n">nn_iovec</span> <span class="tok-p">{</span>
+ <span class="tok-kt">void</span> <span class="tok-o">*</span> <span class="tok-n">iov_base</span><span class="tok-p">;</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">iov_len</span><span class="tok-p">;</span>
+<span class="tok-p">};</span>
+
+<span class="tok-k">struct</span> <span class="tok-n">nn_msghdr</span> <span class="tok-p">{</span>
+ <span class="tok-k">struct</span> <span class="tok-n">nn_iovec</span> <span class="tok-o">*</span><span class="tok-n">msg_iov</span><span class="tok-p">;</span>
+ <span class="tok-kt">int</span> <span class="tok-n">msg_iovlen</span><span class="tok-p">;</span>
+ <span class="tok-kt">void</span> <span class="tok-o">*</span> <span class="tok-n">msg_control</span><span class="tok-p">;</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">msg_controllen</span><span class="tok-p">;</span>
+<span class="tok-p">};</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <code>msg_iov</code> is an array of gather items, permitting the message
+to be spread into different memory blocks.
+There are <code>msg_iovlen</code> elements in this array, each of which
+has the base address (<code>iov_base</code>) and length (<code>iov_len</code>) indicated.</p>
+</div>
+<div class="paragraph">
+<p>For buffers allocated for zero copy
+(such as by <a href="nn_allocmsg.3compat.html"><code>nn_allocmsg()</code></a>), the value
+of <code>iov_base</code> should be the address of the pointer to the buffer,
+rather than the address of the buffer itself.
+In this case, the value of <code>iov_len</code> should be <code>NN_MSG</code>,
+as the length is inferred from the allocated message.
+If the <code>msg_iovlen</code> field is <code>NN_MSG</code>, then this function will free
+the associated buffer after it is done with it, if it returns successfully.
+(If the function returns with an error, then the caller retains ownership
+of the associated buffer and may retry the operation or free the buffer
+at its choice.)</p>
+</div>
+<div class="paragraph">
+<p>The values of <code>msg_control</code> and <code>msg_controllen</code> describe a buffer
+of ancillary data to send the message.
+This is currently only useful to provide the message headers
+used with <a href="nng.7.html#raw_mode">raw mode</a> sockets.
+In all other circumstances these fields should be zero.
+Details about this structure are covered in
+<a href="nn_cmsg.3compat.html"><code>nn_cmsg(3compat)</code></a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The send operation is performed asynchronously, and may not have
+completed before this function returns control to the caller.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the number of bytes sent on success, and -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EFSM</code>
+</td>
+<td class="hdlist2">
+<p>The socket cannot send in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>hdr</em> is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>This protocol cannot send.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_cmsg.3compat.html">nn_cmsg(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_recv.3compat.html">nn_recv(3compat)</a>,
+<a href="nn_send.3compat.html">nn_send(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_setsockopt.3compat.html b/man/v1.2.4/nn_setsockopt.3compat.html
new file mode 100644
index 00000000..2d3bf38e
--- /dev/null
+++ b/man/v1.2.4/nn_setsockopt.3compat.html
@@ -0,0 +1,446 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_setsockopt(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_setsockopt(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_setsockopt - set socket option (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_setsockopt</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">level</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">option</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">sz</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_setsockopt()</code> function sets a socket option on socket <em>sock</em>,
+affecting the behavior of the socket.
+The option set is determined by the <em>level</em> and <em>option</em>.
+The value of the option is set by <em>val</em>, and <em>sz</em>, which are pointers to
+the actual value and the size of the value, respectively.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>level</em> determines whether the option is a generic socket option,
+or is transport-specific.
+The values possible for level are as follows:</p>
+</div>
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NN_SOL_SOCKET</code>
+</td>
+<td class="hdlist2">
+<p>Generic socket option</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_IPC</code>
+</td>
+<td class="hdlist2">
+<p>Transport specific option for IPC.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_TCP</code>
+</td>
+<td class="hdlist2">
+<p>Transport specific option for TCP.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_WS</code>
+</td>
+<td class="hdlist2">
+<p>Transport specific option for WebSocket.</p>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The following generic socket options are possible (all are of type <code>int</code> and
+thus size 4, unless otherwise indicated.)</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SNDBUF</code></dt>
+<dd>
+<p>Send buffer size in bytes.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+In <em>nng</em> buffers are sized as a count of messages rather than
+bytes, and so an attempt to estimate a conversion based upon a predetermined
+message size of 1kB is made.
+The value supplied is rounded up to the nearest value divisible by 1024, and
+then divided by 1024 to convert to a message count.
+Applications that have unusual message sizes may wish to adjust the value
+used here accordingly.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_RCVBUF</code></dt>
+<dd>
+<p>Receive buffer size in bytes.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The same caveats for <code>NN_SNDBUF</code> apply here as well.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SNDTIMEO</code></dt>
+<dd>
+<p>Send time-out in milliseconds.
+Send operations will fail with <code>ETIMEDOUT</code> if no message can be received
+after this many milliseconds have transpired since the operation was started.
+A value of -1 means that no timeout is applied.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RCVTIMEO</code></dt>
+<dd>
+<p>Receive time-out in milliseconds.
+Receive operations will fail with <code>ETIMEDOUT</code> if no message can be received
+after this many milliseconds have transpired since the operation was started.
+A value of -1 means that no timeout is applied.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RCVMAXSIZE</code></dt>
+<dd>
+<p>Maximum receive size in bytes.
+The socket will discard messages larger than this on receive.
+The default, 1MB, is intended to prevent denial-of-service attacks.
+The value -1 removes any limit.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RECONNECT_IVL</code></dt>
+<dd>
+<p>Reconnect interval in milliseconds.
+After an outgoing connection is closed or fails, the socket will
+automatically attempt to reconnect after this many milliseconds.
+This is the starting value for the time, and is used in the first
+reconnection attempt after a successful connection is made.
+The default is 100.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RECONNECT_IVL_MAX</code></dt>
+<dd>
+<p>Maximum reconnect interval in milliseconds.
+Subsequent reconnection attempts after a failed attempt are made at
+exponentially increasing intervals (back-off), but the interval is
+capped by this value.
+If this value is smaller than <code>NN_RECONNECT_IVL</code>, then no exponential
+back-off is performed, and each reconnect interval will be determined
+solely by <code>NN_RECONNECT_IVL</code>.
+The default is zero.</p>
+</dd>
+<dt class="hdlist1"><code>NN_LINGER</code></dt>
+<dd>
+<p>This option is ignored, and exists only for compatibility.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This option was unreliable in early releases of <em>libnanomsg</em>, and
+is unsupported in <em>nng</em> and recent <em>libnanomsg</em> releases.
+Applications needing assurance of message delivery should either include an
+explicit notification (automatic with the <code>NN_REQ</code> protocol) or allow
+sufficient time for the socket to drain before closing the socket or exiting.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SNDPRIO</code></dt>
+<dd>
+<p>This option is not implemented at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_RCVPRIO</code></dt>
+<dd>
+<p>This option is not implemented at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_IPV4ONLY</code></dt>
+<dd>
+<p>This option is not implemented at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_SOCKET_NAME</code></dt>
+<dd>
+<p>This option is a string, and represents the socket name.
+It can be changed to help with identifying different sockets with
+their different application-specific purposes.</p>
+</dd>
+<dt class="hdlist1"><code>NN_MAXTTL</code></dt>
+<dd>
+<p>Maximum &#8220;hops&#8221; through proxies and devices a message may go through.
+This value, if positive, provides some protection against forwarding loops in
+<a href="nng_device.3.html">device</a> chains.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not all protocols offer this protection, so care should still be used
+in configuring device forwarding.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The following option is available for <code>NN_REQ</code> sockets
+using the <code>NN_REQ</code> level:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_REQ_RESEND_IVL</code></dt>
+<dd>
+<p>Request retry interval in milliseconds.
+If an <code>NN_REQ</code> socket does not receive a reply to a request within this
+period of time, the socket will automatically resend the request.
+The default value is 60000 (one minute).</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The following options are available for <code>NN_SUB</code> sockets using the <code>NN_SUB</code> level:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SUB_SUBSCRIBE</code></dt>
+<dd>
+<p>Subscription topic, for <code>NN_SUB</code> sockets.
+This sets a subscription topic.
+When a message from a publisher arrives, it is compared against all
+subscriptions.
+If the first <em>sz</em> bytes of the message are not identical to <em>val</em>,
+then the message is silently discarded.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+To receive all messages, subscribe to an empty topic (<em>sz</em> equal to zero).
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SUB_UNSUBSCRIBE</code></dt>
+<dd>
+<p>Removes a subscription topic that was earlier established.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The following option is available for <code>NN_SURVEYOR</code> sockets
+using the <code>NN_SURVEYOR</code> level:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_SURVEYOR_DEADLINE</code></dt>
+<dd>
+<p>Survey deadline in milliseconds for <code>NN_SURVEYOR</code> sockets.
+After sending a survey message, the socket will only accept responses
+from respondents for this long.
+Any responses arriving after this expires are silently discarded.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>In addition, the following transport specific options are offered:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NN_IPC_SEC_ATTR</code></dt>
+<dd>
+<p>This <code>NN_IPC</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_IPC_OUTBUFSZ</code></dt>
+<dd>
+<p>This <code>NN_IPC</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_IPC_INBUFSZE</code></dt>
+<dd>
+<p>This <code>NN_IPC</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_TCP_NODELAY</code></dt>
+<dd>
+<p>This <code>NN_TCP</code> option is not supported at this time.</p>
+</dd>
+<dt class="hdlist1"><code>NN_WS_MSG_TYPE</code></dt>
+<dd>
+<p>This <code>NN_WS</code> option is not supported, as <em>nng</em> only supports binary messages
+in this implementation.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns zero on success, and -1 on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOPROTOOPT</code>
+</td>
+<td class="hdlist2">
+<p>The level and/or option is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The option, or the value passed, is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETERM</code>
+</td>
+<td class="hdlist2">
+<p>The library is shutting down.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EACCES</code>
+</td>
+<td class="hdlist2">
+<p>The option cannot be changed.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nn_close.3compat.html">nn_close(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_getsockopt.3compat.html">nn_getsockopt(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_shutdown.3compat.html b/man/v1.2.4/nn_shutdown.3compat.html
new file mode 100644
index 00000000..03b6edfd
--- /dev/null
+++ b/man/v1.2.4/nn_shutdown.3compat.html
@@ -0,0 +1,123 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_shutdown(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_shutdown(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_shutdown - shut down endpoint (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-n">nn_shutdown</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">sock</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ep</span><span class="tok-p">)</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_shutdown()</code> shuts down the &#8220;endpoint&#8221; <em>ep</em> on the socket <em>sock</em>.
+This will stop the socket from either accepting new connections, or establishing
+old ones.
+Additionally, any established connections associated with <em>ep</em> will be
+closed.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns zero on success, and -1 on error.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>EBADF</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>sock</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>ep</em> was supplied.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_bind.3compat.html">nn_bind(3compat)</a>,
+<a href="nn_connect.3compat.html">nn_connect(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nn_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_socket.3compat.html b/man/v1.2.4/nn_socket.3compat.html
new file mode 100644
index 00000000..7e75bb54
--- /dev/null
+++ b/man/v1.2.4/nn_socket.3compat.html
@@ -0,0 +1,263 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_socket(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_socket(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_socket - create socket (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nn_socket</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">af</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">proto</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_socket()</code> function creates socket using the address family <em>af</em> and
+protocol <em>proto</em> and returns it.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Mixing the compatibility API and the modern API is not supported
+on a given socket.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Some protocols, transports, and features are only available in the modern API.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The address family <em>af</em> can be one of two values:</p>
+</div>
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>AF_SP</code>
+</td>
+<td class="hdlist2">
+<p>Normal socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>AF_SP_RAW</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng.7.html#raw_mode">&#8220;Raw mode&#8221;</a> socket.</p>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The protocol indicates the protocol to be used when creating the socket.
+The following protocols are defined:</p>
+</div>
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NN_PAIR</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_pair.7.html">Pair</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_PUB</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_pub.7.html">Publisher</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_SUB</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_sub.7.html">Subscriber</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_REQ</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_req.7.html">Requestor</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_REP</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_rep.7.html">Replier</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_PUSH</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_push.7.html">Push</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_PULL</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_pull.7.html">Pull</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_SURVEYOR</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_surveyor.7.html">Surveyor</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_RESPONDENT</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_respondent.7.html">Respondent</a> protocol.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NN_BUS</code>
+</td>
+<td class="hdlist2">
+<p><a href="nng_bus.7.html">Bus</a> protocol.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns a valid socket number on success, and -1 on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>ETERM</code>
+</td>
+<td class="hdlist2">
+<p>The library is shutting down.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nn_close.3compat.html">nn_close(3compat)</a>,
+<a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_strerror.3compat.html b/man/v1.2.4/nn_strerror.3compat.html
new file mode 100644
index 00000000..2bece343
--- /dev/null
+++ b/man/v1.2.4/nn_strerror.3compat.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_errno(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_errno(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_strerror - return message for error (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nn_strerror</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">err</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_strerror()</code> function returns a human readable message corresponding
+to the given error number <em>err</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the message corresponding to <em>err</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nn_term.3compat.html b/man/v1.2.4/nn_term.3compat.html
new file mode 100644
index 00000000..0d80160b
--- /dev/null
+++ b/man/v1.2.4/nn_term.3compat.html
@@ -0,0 +1,122 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nn_term(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nn_term(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nn_term - terminate library (compatible API)</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nn_term</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nn_term()</code> function closes any open sockets, and frees all resources
+allocated by the library.
+Any operations that are currently in progress will be terminated, and will
+fail with error <code>EBADF</code> or <code>ETERM</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is provided for API
+<a href="nng_compat.3compat.html">compatibility</a> with legacy <em>libnanomsg</em>.
+Consider using the relevant <a href="libnng.3.html">modern API</a> instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This function is not thread-safe, and is not suitable for use
+in library calls.
+The intended purpose of this is to clean up at application termination; for
+example by registering this function with <code>atexit()</code>.
+This can help prevent false leak reports caused when memory checkers notice
+global resources allocated by the library.
+Libraries should never use this function, but should explicitly close their
+own sockets directly.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nn_errno.3compat.html">nn_errno(3compat)</a>,
+<a href="nn_socket.3compat.html">nn_socket(3compat)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng.7.html b/man/v1.2.4/nng.7.html
new file mode 100644
index 00000000..fe57fc12
--- /dev/null
+++ b/man/v1.2.4/nng.7.html
@@ -0,0 +1,421 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_protocols">Protocols</a></li>
+<li><a href="#_transports">Transports</a></li>
+<li><a href="#_conceptual_overview">Conceptual Overview</a>
+<ul class="sectlevel2">
+<li><a href="#raw_mode">Raw Mode</a></li>
+<li><a href="#_urls">URLs</a></li>
+</ul>
+</li>
+<li><a href="#_api">API</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng - nanomsg next generation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><strong>cc</strong> ['flags'] 'files' <strong>-lnng</strong> ['libraries']</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <em>nng</em> library provides a common messaging framework intended to
+solve common communication problems in distributed applications.
+It offers a number of <em>protocols</em>, and also a number of <em>transports</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <em>protocols</em> implement the semantics associated with particular
+communications scenarios, such as RPC style services, service discovery,
+publish/subscribe, and so forth.</p>
+</div>
+<div class="paragraph">
+<p>The <em>transports</em> provide support for underlying transport methods, such
+as TCP, IPC, websockets, and so forth.</p>
+</div>
+<div class="paragraph">
+<p>The <em>nng</em> library is designed to permit easy creation of new <em>transports</em> and,
+to a lesser extent, new <em>protocols</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <em>nng</em> library is wire compatible with the SP protocols described in
+the nanomsg project; projects using
+<a href="https://github.com/nanomsg/nanomsg"><em>libnanomsg</em></a> can inter-operate with
+nng as well as other conforming implementations. (One such implementation
+is <a href="https://github.com/go-mangos/mangos"><em>mangos</em></a>.) Applications using <em>nng</em>
+which wish to communicate with older libraries must ensure that they only
+use protocols or transports offered by the earlier library.</p>
+</div>
+<div class="paragraph">
+<p>The <em>nng</em> library also offers a compatible API, permitting legacy code to
+be recompiled or relinked against <em>nng</em>. When doing this, support for
+certain enhancements or features will likely be absent, requiring the
+application developer to use the new-style API.</p>
+</div>
+<div class="paragraph">
+<p>The <em>nng</em> library is implemented in pure C; if you need bindings for
+other languages please check the <a href="http://nanomsg.org/">website</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_protocols">Protocols</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<a href="nng_bus.7.html">nng_bus(7)</a>
+</td>
+<td class="hdlist2">
+<p>Bus protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_pair.7.html">nng_pair(7)</a>
+</td>
+<td class="hdlist2">
+<p>Pair protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_pub.7.html">nng_pub(7)</a>
+</td>
+<td class="hdlist2">
+<p>Publisher side of publish/subscribe protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_pull.7.html">nng_pull(7)</a>
+</td>
+<td class="hdlist2">
+<p>Pull side of pipeline protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_push.7.html">nng_push(7)</a>
+</td>
+<td class="hdlist2">
+<p>Push side of pipeline protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_sub.7.html">nng_sub(7)</a>
+</td>
+<td class="hdlist2">
+<p>Subscriber side of publish/subscribe protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_rep.7.html">nng_rep(7)</a>
+</td>
+<td class="hdlist2">
+<p>Reply side of request/reply protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_req.7.html">nng_req(7)</a>
+</td>
+<td class="hdlist2">
+<p>Request side of request/reply protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_respondent.7.html">nng_respondent(7)</a>
+</td>
+<td class="hdlist2">
+<p>Respondent side of survey protocol</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_surveyor.7.html">nng_surveyor(7)</a>
+</td>
+<td class="hdlist2">
+<p>Surveyor side of survey protocol</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_transports">Transports</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<a href="nng_inproc.7.html">nng_inproc(7)</a>
+</td>
+<td class="hdlist2">
+<p>Intra-process transport</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_ipc.7.html">nng_ipc(7)</a>
+</td>
+<td class="hdlist2">
+<p>Inter-process transport</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_tls.7.html">nng_tls(7)</a>
+</td>
+<td class="hdlist2">
+<p>TLSv1.2 over TCP transport</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_tcp.7.html">nng_tcp(7)</a>
+</td>
+<td class="hdlist2">
+<p>TCP (and TCPv6) transport</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_ws.7.html">nng_ws(7)</a>
+</td>
+<td class="hdlist2">
+<p>WebSocket transport</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nng_zerotier.7.html">nng_zerotier(7)</a>
+</td>
+<td class="hdlist2">
+<p>ZeroTier transport</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_conceptual_overview">Conceptual Overview</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><em>nng</em> presents a <em>socket</em> view of networking.
+The sockets are constructed using protocol-specific functions, as a given
+socket implements precisely one <em>nng</em> protocol.</p>
+</div>
+<div class="paragraph">
+<p>Each socket can be used to send and receive messages (if the protocol)
+supports it, and implements the appropriate protocol semantics.
+For example, <a href="nng_sub.7.html"><em>sub</em></a> sockets automatically filter incoming
+messages to discard those for topics that have not been subscribed.</p>
+</div>
+<div class="paragraph">
+<p><em>nng</em> sockets are message oriented, so that messages are either delivered
+wholly, or not at all. Partial delivery is not possible.
+Furthermore, <em>nng</em> does not provide any other delivery or ordering guarantees;
+messages may be dropped or reordered
+(Some protocols, such as <a href="nng_req.7.html"><em>req</em></a> may offer stronger
+guarantees by performing their own retry and validation schemes.)</p>
+</div>
+<div class="paragraph">
+<p>Each socket can have zero, one, or many "endpoints", which are either
+<em>listeners</em> or <em>dialers</em>.
+(A given socket may freely choose whether it uses listeners, dialers, or both.)
+These &#8220;endpoints&#8221; provide access to underlying transports, such as TCP, etc.</p>
+</div>
+<div class="paragraph">
+<p>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 accept new connections.</p>
+</div>
+<div class="paragraph">
+<p>Endpoints do not themselves transport data.
+They are instead responsible for the creation of <em>pipes</em>, 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 operating system socket.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="sect2">
+<h3 id="raw_mode">Raw Mode</h3>
+<div class="paragraph">
+<p>
+Most applications will use <em>nng</em> sockets in &#8220;cooked&#8221; mode.
+This mode provides the full semantics of the protocol.
+For example, <a href="nng_req.7.html"><em>req</em></a> sockets will automatically
+match a reply to a request, and resend requests periodically if no reply
+was received.</p>
+</div>
+<div class="paragraph">
+<p>There are situations, such as with <a href="nng_device.3.html">proxies</a>,
+where it is desirable to bypass these semantics and simply pass messages
+to and from the socket with no extra semantic handling.
+This is possible using &#8220;raw&#8221; mode sockets.</p>
+</div>
+<div class="paragraph">
+<p>Raw mode sockets are generally constructed with a different function,
+such as <a href="nng_req_open.3.html"><code>nng_req0_open_raw()</code></a>.
+Using these sockets, the application can simply send and receive messages,
+and is responsible for supplying any additional socket semantics.
+Typically this means that the application will need to inspect message
+headers on incoming messages, and supply them on outgoing messages.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <a href="nng_device.3.html"><code>nng_device()</code></a> function only works with raw mode
+sockets, but as it only forwards the messages, no additional application
+processing is needed.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_urls">URLs</h3>
+<div class="paragraph">
+<p>
+The <em>nng</em> library uses universal resource locators (URLs)
+following the format specified in
+<a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a>,
+including some schemes that are unique
+to SP.
+
+The URLs used in <em>nng</em> are canonicalized as follows, mostly in
+accordance with
+<a href="https://tools.ietf.org/html/rfc3986#section-6.2.2">RFC 3986 6.2.2</a>:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>The URL is parsed into scheme, userinfo, host, port, path, query and
+fragment components. (Not all of these members are necessarily present.)</p>
+</li>
+<li>
+<p>The scheme, hostname, and port if present, are converted to lower case.</p>
+</li>
+<li>
+<p>Percent-encoded values for
+<a href="https://tools.ietf.org/html/rfc3986#section-2.3">unreserved characters</a>
+converted to their unencoded forms.</p>
+</li>
+<li>
+<p>Additionally URL percent-encoded values for characters in the path
+and with numeric values larger than 127 (i.e. not ASCII) are decoded.</p>
+</li>
+<li>
+<p>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.</p>
+</li>
+<li>
+<p>Path segments consisting of <code>.</code> and <code>..</code> are resolved as per
+<a href="https://tools.ietf.org/html/rfc3986#section-6.2.2.3">RFC 3986 6.2.2.3</a>.</p>
+</li>
+<li>
+<p>Further, empty path segments are removed, meaning that duplicate
+slash (<code>/</code>) separators are removed from the path.</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>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 <em>nng</em>
+applications, without violating RFC 3986 itself.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Port numbers may be service names in some instances, but it is recommended
+that numeric port numbers be used when known.
+If service names are used, it is recommended that they follow the naming
+conventions for C identifiers, and not be longer than 32 characters in length.
+This will maximize compatibility across systems and minimize opportunities for
+confusion when they are parsed on different systems.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_api">API</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The library API is documented at <a href="libnng.3.html">libnng(3)</a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_compat.3compat.html">nng_compat(3compat)</a></p>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio.5.html b/man/v1.2.4/nng_aio.5.html
new file mode 100644
index 00000000..792bd393
--- /dev/null
+++ b/man/v1.2.4/nng_aio.5.html
@@ -0,0 +1,107 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio - asynchronous I/O handle</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_aio</span> <span class="tok-n">nng_aio</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_aio</code> is an opaque structure used in conjunction 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.</p>
+</div>
+<div class="paragraph">
+<p>Asynchronous operations are performed without blocking calling application
+threads.
+Instead the application registers a &#8220;callback&#8221; function to be executed
+when the operation is complete (whether successfully or not).
+This callback will be executed exactly once.</p>
+</div>
+<div class="paragraph">
+<p>The asynchronous I/O framework in <em>nng</em> also supports cancellation of
+operations that are already in progress
+(see <a href="nng_aio_cancel.3.html"><code>nng_aio_cancel()</code></a>), as well setting a maximum
+timeout for them to complete within
+(see <a href="nng_aio_set_timeout.3.html"><code>nng_aio_set_timeout()</code></a>).</p>
+</div>
+<div class="paragraph">
+<p>It is also possible to initiate an asynchronous operation, and wait for it to
+complete using <a href="nng_aio_wait.3.html"><code>nng_aio_wait()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>These structures are created using the <a href="nng_aio_alloc.3.html"><code>nng_aio_alloc()</code></a>,
+and destroyed using <a href="nng_aio_free.3.html"><code>nng_aio_free()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_abort.3.html">nng_aio_abort(3)</a>,
+<a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_free.3.html">nng_aio_free(3)</a>,
+<a href="nng_aio_get_input.3.html">nng_aio_get_input(3)</a>,
+<a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_aio_get_output.3.html">nng_aio_get_output(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_input.3.html">nng_aio_set_input(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_aio_set_timeout.3.html">nng_aio_set_timeout(3)</a>,
+<a href="nng_aio_stop.3.html">nng_aio_stop(3)</a>,
+<a href="nng_aio_wait.3.html">nng_aio_wait(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="#">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_abort.3.html b/man/v1.2.4/nng_aio_abort.3.html
new file mode 100644
index 00000000..f9197932
--- /dev/null
+++ b/man/v1.2.4/nng_aio_abort.3.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_abort(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_abort(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_abort - abort asynchronous I/O operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_abort</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">err</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_abort()</code> function aborts an operation previously started
+with the handle <em>aio</em>.
+If the operation is aborted, then the callback
+for the handle will be called, and the function
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a> will return the error <em>err</em>.</p>
+</div>
+<div class="paragraph">
+<p>This function does not wait for the operation to be fully aborted, but
+returns immediately.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_alloc.3.html b/man/v1.2.4/nng_aio_alloc.3.html
new file mode 100644
index 00000000..c0e70fda
--- /dev/null
+++ b/man/v1.2.4/nng_aio_alloc.3.html
@@ -0,0 +1,145 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_alloc(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_alloc(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_alloc - allocate asynchronous I/O handle</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_aio_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">**</span><span class="tok-n">aiop</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-p">(</span><span class="tok-o">*</span><span class="tok-n">callb</span><span class="tok-p">)(</span><span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-p">),</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_alloc()</code> function allocates a handle for asynchronous I/O
+operations, and stores a pointer to it in <em>aiop</em>.
+The handle is initialized with a completion callback of <em>callb</em>,
+which will be executed when an associated asynchronous operation finishes.
+It will be called with the argument <em>arg</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The callback <em>callb</em> must not perform any blocking operations, and
+must complete its execution quickly. If <em>callb</em> does block, this can
+lead ultimately to an apparent "hang" or deadlock in the application.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Asynchronous I/O operations all take an <a href="nng_aio.5.html"><code>nng_aio</code></a>
+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
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>,
+<a href="nng_aio_count.3.html"><code>nng_aio_count()</code></a>,
+and <a href="nng_aio_get_output.3.html"><code>nng_aio_get_output()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>It is possible to wait synchronously for an otherwise asynchronous operation
+by using the function <a href="nng_aio_wait.3.html"><code>nng_aio_wait()</code></a>.
+In that case, it is permissible for <em>callb</em> and <em>arg</em> to both be <code>NULL</code>.
+Note that if these are <code>NULL</code>, then it will not be possible to determine when the
+operation is complete except by calling the aforementioned
+<a href="nng_aio_wait.3.html"><code>nng_aio_wait()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_abort.3.html">nng_aio_abort(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_free.3.html">nng_aio_free(3)</a>,
+<a href="nng_aio_get_input.3.html">nng_aio_get_input(3)</a>,
+<a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_aio_get_output.3.html">nng_aio_get_output(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_input.3.html">nng_aio_set_input(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_aio_set_timeout.3.html">nng_aio_set_timeout(3)</a>,
+<a href="nng_aio_stop.3.html">nng_aio_stop(3)</a>,
+<a href="nng_aio_wait.3.html">nng_aio_wait(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_begin.3.html b/man/v1.2.4/nng_aio_begin.3.html
new file mode 100644
index 00000000..673f0455
--- /dev/null
+++ b/man/v1.2.4/nng_aio_begin.3.html
@@ -0,0 +1,135 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_begin(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_begin(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_begin - begin asynchronous I/O operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">bool</span> <span class="tok-nf">nng_aio_begin</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_begin()</code> function is called by the I/O provider to indicate that
+it is going to process the operation.</p>
+</div>
+<div class="paragraph">
+<p>The function may return <code>false</code>, indicating that the <em>aio</em> has been closed
+by the caller asynchronously.
+In this case the provider should abandon the operation and do nothing else.</p>
+</div>
+<div class="paragraph">
+<p>This operation should be called at the start of any I/O operation, and must
+be called not more than once for a given I/O operation on a given <em>aio</em>.</p>
+</div>
+<div class="paragraph">
+<p>Once this function is called, if <code>true</code> is returned, then the provider MUST
+guarantee that <a href="nng_aio_finish.3.html"><code>nng_aio_finish()</code></a> is called for the <em>aio</em>
+exactly once, when the operation is complete or canceled.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <em>aio</em> should not call this function.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>true</code>
+</td>
+<td class="hdlist2">
+<p>The operation has been started.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>false</code>
+</td>
+<td class="hdlist2">
+<p>The operation cannot be started.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_defer.3.html">nng_aio_defer(3)</a>,
+<a href="nng_aio_finish.3.html">nng_aio_finish(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_cancel.3.html b/man/v1.2.4/nng_aio_cancel.3.html
new file mode 100644
index 00000000..eced6c9a
--- /dev/null
+++ b/man/v1.2.4/nng_aio_cancel.3.html
@@ -0,0 +1,113 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_cancel(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_cancel(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_cancel - cancel asynchronous I/O operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_cancel</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_cancel()</code> function aborts an operation previously started
+with the handle <em>aio</em>.
+If the operation is aborted, then the callback
+for the handle will be called, and the function
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a> will return the error <code>NNG_ECANCELED</code>.</p>
+</div>
+<div class="paragraph">
+<p>This function does not wait for the operation to be fully aborted, but
+returns immediately.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function is the same as calling
+<a href="nng_aio_abort.3.html"><code>nng_aio_abort()</code></a> with the error <code>NNG_ECANCELED</code>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_abort.3.html">nng_aio_abort(3)</a>,
+<a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_count.3.html b/man/v1.2.4/nng_aio_count.3.html
new file mode 100644
index 00000000..fe6af451
--- /dev/null
+++ b/man/v1.2.4/nng_aio_count.3.html
@@ -0,0 +1,116 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_count(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_count(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_count - return number of bytes transferred</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">size_t</span> <span class="tok-nf">nng_aio_count</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_count()</code> returns the number of bytes transferred by the
+asynchronous operation associated with the handle <em>aio</em>.</p>
+</div>
+<div class="paragraph">
+<p>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)&#8201;&#8212;&#8201;in this case
+this function will generally return zero.</p>
+</div>
+<div class="paragraph">
+<p>This function is most useful when used with operations that make use of
+of a scatter/gather vector (set by <a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a>).</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The return value from this function is undefined if the operation
+has not completed yet.
+Either call this from the handle&#8217;s completion callback,
+or after waiting for the operation to complete with
+<a href="nng_aio_wait.3.html"><code>nng_aio_wait()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The number of bytes transferred by the operation.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_aio_wait.3.html">nng_aio_wait(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_defer.3.html b/man/v1.2.4/nng_aio_defer.3.html
new file mode 100644
index 00000000..c386dd38
--- /dev/null
+++ b/man/v1.2.4/nng_aio_defer.3.html
@@ -0,0 +1,164 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_defer(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_defer(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_defer - defer asynchronous I/O operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-nf">void</span> <span class="tok-p">(</span><span class="tok-o">*</span><span class="tok-n">nng_aio_cancelfn</span><span class="tok-p">)(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">err</span><span class="tok-p">);</span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_defer</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-n">nng_aio_cancelfn</span> <span class="tok-n">fn</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_defer()</code> function marks operation associated with <em>aio</em> as
+being deferred for asynchronous completion, and also registers a cancellation
+function <em>fn</em> and associated argument <em>arg</em>, thereby
+permitting the operation to be canceled.</p>
+</div>
+<div class="paragraph">
+<p>If the <em>aio</em> is being canceled, the cancellation routine <em>fn</em> will be called
+with the <em>aio</em>, the <em>arg</em> specified by <code>nng_aio_defer()</code>, and an error
+value in <em>err</em>, which is the reason that the operation is being canceled.</p>
+</div>
+<div class="paragraph">
+<p>The operation may not be cancelable; for example it may have already been
+completed, or be in a state where it is no longer possible to unschedule it.
+In this case, the <em>cancelfn</em> should just return without making any changes.</p>
+</div>
+<div class="paragraph">
+<p>If the cancellation routine successfully canceled the operation, it should
+ensure that <a href="nng_aio_finish.3.html"><code>nng_aio_finish()</code></a> is called, with the
+error code specified by <em>err</em>.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+It is mandatory that I/O providers call
+<a href="nng_aio_finish.3.html"><code>nng_aio_finish()</code></a>
+<strong>EXACTLY ONCE</strong> when they are finished with the operation.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <em>aio</em> should not call this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Care must be taken to ensure that cancellation and completion of
+the routine are multi-thread safe; this will usually involve the use
+of locks or other synchronization primitives.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+For operations that complete synchronously, without any need to be
+deferred, the provider should not bother to call <code>nng_aio_defer()</code>,
+although it is harmless if it does.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_finish.3.html">nng_aio_finish(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_finish.3.html b/man/v1.2.4/nng_aio_finish.3.html
new file mode 100644
index 00000000..68b8aec0
--- /dev/null
+++ b/man/v1.2.4/nng_aio_finish.3.html
@@ -0,0 +1,124 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_finish(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_finish(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_finish - finish asynchronous I/O operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_finish</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">err</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_finish()</code> function marks operation associated with <em>aio</em> as
+complete, with the status <em>err</em>.
+This will be the result returned by
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This function causes the callback associated with the <em>aio</em> to called.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+It is mandatory that operation &#8220;providers&#8221; call this function
+<strong>EXACTLY ONCE</strong> when they are finished with the operation.
+After calling this function they <strong>MUST NOT</strong> perform any further accesses
+to the <em>aio</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <em>aio</em> should not have any need for this function.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_begin.3.html">nng_aio_begin(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_defer.3.html">nng_aio_defer(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_free.3.html b/man/v1.2.4/nng_aio_free.3.html
new file mode 100644
index 00000000..cefe879b
--- /dev/null
+++ b/man/v1.2.4/nng_aio_free.3.html
@@ -0,0 +1,90 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_free(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_free(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_free - free asynchronous I/O handle</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_free</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_free()</code> 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 <a href="nng_aio_stop.3.html"><code>nng_aio_stop()</code></a>.)</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_stop.3.html">nng_aio_stop(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_get_input.3.html b/man/v1.2.4/nng_aio_get_input.3.html
new file mode 100644
index 00000000..565ab441
--- /dev/null
+++ b/man/v1.2.4/nng_aio_get_input.3.html
@@ -0,0 +1,97 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_get_input(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_get_input(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_get_input - return input parameter</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nng_aio_get_input</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">unsigned</span> <span class="tok-kt">int</span> <span class="tok-n">index</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_get_input()</code> function returns the value of the input parameter
+previously set at <em>index</em> on <em>aio</em> with the
+<a href="nng_aio_set_input.3.html"><code>nng_aio_set_input()</code></a> function.</p>
+</div>
+<div class="paragraph">
+<p>The valid values of <em>index</em> 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 <code>NULL</code> is returned.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Value previously set, or <code>NULL</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_get_output.3.html">nng_aio_get_output(3)</a>,
+<a href="nng_aio_set_input.3.html">nng_aio_set_input(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_get_msg.3.html b/man/v1.2.4/nng_aio_get_msg.3.html
new file mode 100644
index 00000000..f33bc645
--- /dev/null
+++ b/man/v1.2.4/nng_aio_get_msg.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_get_msg(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_get_msg(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_get_msg - get message from asynchronous receive</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-nf">nng_aio_get_msg</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_get_msg()</code> function gets any message stored in <em>aio</em> as
+either a result of a successful receive
+(see <a href="nng_recv_aio.3.html"><code>nng_recv_aio()</code></a>)
+or that was previously stored with <a href="nng_aio_set_msg.3.html"><code>nng_aio_set_msg()</code></a>.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <a href="nng_aio.5.html"><code>nng_aio</code></a> must not have an operation in progress.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_recv_aio.3.html">nng_recv_aio(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_get_output.3.html b/man/v1.2.4/nng_aio_get_output.3.html
new file mode 100644
index 00000000..80467a97
--- /dev/null
+++ b/man/v1.2.4/nng_aio_get_output.3.html
@@ -0,0 +1,120 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_get_output(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_get_output(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_get_output - return output result</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nng_aio_get_output</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">unsigned</span> <span class="tok-kt">int</span> <span class="tok-n">index</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_get_output()</code> function returns the output result at <em>index</em>
+resulting from the asynchronous operation associated with <em>aio</em>.</p>
+</div>
+<div class="paragraph">
+<p>The type and semantics of output parameters are determined by specific
+operations.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+If the <em>index</em> does not correspond to a defined output for the operation,
+or the operation did not succeed, then the return value will be <code>NULL</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+It is an error to call this function while the <em>aio</em> is currently
+in use by an active asynchronous operation, or if no operation has been
+performed using the <em>aio</em> yet.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <em>index</em>th result of the operation, or <code>NULL</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="#">nng_aio_get_output(3)</a>,
+<a href="nng_aio_set_input.3.html">nng_aio_set_input(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_result.3.html b/man/v1.2.4/nng_aio_result.3.html
new file mode 100644
index 00000000..fe7f4af8
--- /dev/null
+++ b/man/v1.2.4/nng_aio_result.3.html
@@ -0,0 +1,128 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_result(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_result(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_result - return result of asynchronous operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_aio_result</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_result()</code> returns the result of the operation associated
+with the handle <em>aio</em>.
+If the operation was successful, then 0 is returned.
+Otherwise a non-zero error code is returned.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The return value from this function is undefined if the operation
+has not completed yet.
+Either call this from the handle&#8217;s completion
+callback, or after waiting for the operation to complete with
+<a href="nng_aio_wait.3.html"><code>nng_aio_wait()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The result of the operation, either zero on success, or an error
+number on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The operation timed out.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Various other return values are possible depending on the operation.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_abort.3.html">nng_aio_abort(3)</a>,
+<a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_wait.3.html">nng_aio_wait(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_set_input.3.html b/man/v1.2.4/nng_aio_set_input.3.html
new file mode 100644
index 00000000..f4eedaea
--- /dev/null
+++ b/man/v1.2.4/nng_aio_set_input.3.html
@@ -0,0 +1,129 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_set_input(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_set_input(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_set_input - set input parameter</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_set_input</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">unsigned</span> <span class="tok-kt">int</span> <span class="tok-n">index</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">param</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_set_input()</code> function sets the input parameter at <em>index</em>
+to <em>param</em> for the asynchronous operation associated with <em>aio</em>.</p>
+</div>
+<div class="paragraph">
+<p>The type and semantics of input parameters are determined by specific
+operations; the caller must supply appropriate inputs for the operation
+to be performed.</p>
+</div>
+<div class="paragraph">
+<p>The valid values of <em>index</em> 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.)</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+If the <em>index</em> does not correspond to a defined input for the operation,
+then this function will have no effect.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+It is an error to call this function while the <em>aio</em> is currently
+in use by an active asynchronous operation.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>An input parameter set with this function may be retrieved later with
+the <a href="nng_aio_get_input.3.html"><code>nng_aio_get_input()</code></a> function.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_get_input.3.html">nng_aio_get_input(3)</a>,
+<a href="nng_aio_get_output.3.html">nng_aio_get_output(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_set_iov.3.html b/man/v1.2.4/nng_aio_set_iov.3.html
new file mode 100644
index 00000000..6d8058eb
--- /dev/null
+++ b/man/v1.2.4/nng_aio_set_iov.3.html
@@ -0,0 +1,138 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_set_iov(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_set_iov(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_set_iov - set scatter/gather vector</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_aio_set_iov</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">unsigned</span> <span class="tok-kt">int</span> <span class="tok-n">niov</span><span class="tok-p">,</span> <span class="tok-n">nng_iov</span> <span class="tok-o">*</span><span class="tok-n">iov</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_set_iov()</code> function sets a scatter/gather vector <em>iov</em> on the
+handle <em>aio</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <em>iov</em> is a pointer to an array of <em>niov</em> <a href="nng_iov.5.html"><code>nng_iov</code></a>
+structures, which have the following definition:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span> <span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_iov</span> <span class="tok-p">{</span>
+ <span class="tok-kt">void</span> <span class="tok-o">*</span> <span class="tok-n">iov_buf</span><span class="tok-p">;</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">iov_len</span><span class="tok-p">;</span>
+ <span class="tok-p">};</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The <em>iov</em> is copied into storage in the <em>aio</em> itself, so that callers
+may use stack allocated <code>nng_iov</code> structures. The values pointed to
+by the <code>iov_buf</code> members are <strong>not</strong> copied by this function though.</p>
+</div>
+<div class="paragraph">
+<p>Up to four <code>nng_iov</code> members may be supplied without causing any
+allocations, and thus this operation is guaranteed to succeed for
+values of <em>niov</em> less than four.</p>
+</div>
+<div class="paragraph">
+<p>More than four (4) <code>nng_iov</code> members may be supplied, but this may require
+heap allocations, and so the operation may fail with <code>NNG_ENOMEM</code>.
+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 <em>niov</em> larger than sixty-four (64) will
+generally result in <code>NNG_EINVAL</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Value of specified <em>niov</em> is too large.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_iov.5.html">nng_iov(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_set_msg.3.html b/man/v1.2.4/nng_aio_set_msg.3.html
new file mode 100644
index 00000000..1ab1f34f
--- /dev/null
+++ b/man/v1.2.4/nng_aio_set_msg.3.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_set_msg(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_set_msg(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_set_msg - set message for asynchronous send</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_set_msg</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_set_msg()</code> function sets the message that will be used
+for an asynchronous send operation (see <a href="nng_send_aio.3.html"><code>nng_send_aio()</code></a>).</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <a href="nng_aio.5.html"><code>nng_aio</code></a> must not have an operation in progress.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_send_aio.3.html">nng_send_aio(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_set_output.3.html b/man/v1.2.4/nng_aio_set_output.3.html
new file mode 100644
index 00000000..06bc9f68
--- /dev/null
+++ b/man/v1.2.4/nng_aio_set_output.3.html
@@ -0,0 +1,116 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_set_output(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_set_output(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_set_output - set output result</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_set_output</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-kt">unsigned</span> <span class="tok-kt">int</span> <span class="tok-n">index</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">result</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_set_output()</code> function sets the output result at <em>index</em>
+to <em>result</em> for the asynchronous operation associated with <em>aio</em>.</p>
+</div>
+<div class="paragraph">
+<p>The type and semantics of output results are determined by specific
+operations; the operation must supply appropriate output results when
+the operation completes successfully.</p>
+</div>
+<div class="paragraph">
+<p>The valid values of <em>index</em> 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.)</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Note that attempts to set results with an <em>index</em> greater than
+three (3) will be ignored.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>An output result set with this function may be retrieved later with
+the <a href="nng_aio_get_output.3.html"><code>nng_aio_get_output()</code></a> function.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_finish.3.html">nng_aio_finish(3)</a>,
+<a href="nng_aio_get_output.3.html">nng_aio_get_output(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_set_timeout.3.html b/man/v1.2.4/nng_aio_set_timeout.3.html
new file mode 100644
index 00000000..870e866f
--- /dev/null
+++ b/man/v1.2.4/nng_aio_set_timeout.3.html
@@ -0,0 +1,119 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_set_timeout(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_set_timeout(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_set_timeout - set asynchronous I/O timeout</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-kt">int</span> <span class="tok-n">nng_duration</span><span class="tok-p">;</span>
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_set_timeout</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">timeout</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_set_timeout()</code> function sets a <em>timeout</em>
+for the asynchronous operation associated with <em>aio</em>.
+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 <code>NNG_ETIMEDOUT</code>.
+The <em>timeout</em> is specified as a relative number of milliseconds.</p>
+</div>
+<div class="paragraph">
+<p>If the timeout is <code>NNG_DURATION_INFINITE</code>, then no timeout is used.
+If the timeout is <code>NNG_DURATION_DEFAULT</code>, then a "default" or socket-specific
+timeout is used.
+(This is frequently the same as <code>NNG_DURATION_INFINITE</code>.)</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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&#8201;&#8212;&#8201;a too small timeout might not allow the operation to properly begin before
+giving up!
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value of <em>timeout</em> set for the <em>aio</em> is persistent, so that if the
+handle is reused for multiple operations, they will have the same relative
+timeout.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_stop.3.html b/man/v1.2.4/nng_aio_stop.3.html
new file mode 100644
index 00000000..1d5126a3
--- /dev/null
+++ b/man/v1.2.4/nng_aio_stop.3.html
@@ -0,0 +1,129 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_stop(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_stop(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_stop - stop asynchronous I/O operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_stop</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_stop()</code> function stops the asynchronous I/O operation
+associated with <em>aio</em> by aborting with <code>NNG_ECANCELED</code>, and then waits
+for it to complete or to be completely aborted.</p>
+</div>
+<div class="paragraph">
+<p>If an operation is in progress when this function is called, that operation
+is canceled and the callback function is <em>not</em> allowed to run.</p>
+</div>
+<div class="paragraph">
+<p>If the callback function is already running when this function is called,
+then it is allowed to complete before returning to the caller.</p>
+</div>
+<div class="paragraph">
+<p>No new operations will be started on this <em>aio</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Calling this function means that the operation may be aborted without
+completing its callback function.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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 <a href="nng_aio_free.3.html"><code>nng_aio_free()</code></a>, particularly if the callbacks
+might attempt to reschedule additional operations.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_cancel.3.html">nng_aio_cancel(3)</a>,
+<a href="nng_aio_free.3.html">nng_aio_free(3)</a>,
+<a href="nng_aio_wait.3.html">nng_aio_wait(3)</a>,
+<a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_aio_wait.3.html b/man/v1.2.4/nng_aio_wait.3.html
new file mode 100644
index 00000000..c51585a4
--- /dev/null
+++ b/man/v1.2.4/nng_aio_wait.3.html
@@ -0,0 +1,93 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_aio_wait(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_aio_wait(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_aio_wait - wait for asynchronous I/O operation</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_aio_wait</span><span class="tok-p">(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_aio_wait()</code> 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.</p>
+</div>
+<div class="paragraph">
+<p>If the a callback was set with <em>aio</em> when it was allocated, then this
+function will not be called until the callback has completed.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_abort.3.html">nng_aio_abort(3)</a>,
+<a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_alloc.3.html b/man/v1.2.4/nng_alloc.3.html
new file mode 100644
index 00000000..79bfaa6b
--- /dev/null
+++ b/man/v1.2.4/nng_alloc.3.html
@@ -0,0 +1,110 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_alloc(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_alloc(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_alloc - allocate memory</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nng_alloc</span><span class="tok-p">(</span><span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_alloc()</code> function allocates a contiguous memory region of
+at least <em>size</em> bytes.
+The memory will be 64-bit aligned.</p>
+</div>
+<div class="paragraph">
+<p>The returned memory can be used to hold message buffers, in which
+case it can be directly passed to <a href="nng_send.3.html"><code>nng_send()</code></a> using
+the flag <code>NNG_FLAG_ALLOC</code>. Alternatively, it can be freed when no
+longer needed using <a href="nng_free.3.html"><code>nng_free()</code></a>.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Do not use the system <code>free()</code> 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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns a pointer to the allocated memory on success,
+and <code>NULL</code> otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>No errors are returned, but a <code>NULL</code> return value should be
+treated the same as <code>NNG_ENOMEM</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_free.3.html">nng_free(3)</a>,
+<a href="nng_send.3.html">nng_send(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_bus.7.html b/man/v1.2.4/nng_bus.7.html
new file mode 100644
index 00000000..cb309954
--- /dev/null
+++ b/man/v1.2.4/nng_bus.7.html
@@ -0,0 +1,154 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_bus(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_bus(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_bus - bus protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/bus0/bus.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>bus</em> 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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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 <em>fully-connected</em> mesh network be constructed.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+In order to minimize the likelihood of message loss, this protocol
+should not be used for high throughput communications.
+Furthermore, the more traffic <em>in aggregate</em> that occurs across the topology,
+the more likely that message loss is to occur.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_bus_open.3.html"><code>nng_bus0_open()</code></a> functions create a bus socket.
+This socket may be used to send and receive messages.
+Sending messages will attempt to deliver to each directly connected peer.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Only version 0 of this protocol is supported.
+(At the time of writing, no other versions of this protocol have been defined.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The <em>bus</em> protocol has no protocol-specific options.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>When using a <a href="nng.7.html#raw_mode">&#8220;raw&#8221;</a> <em>bus</em> socket, received messages will
+contain the incoming <a href="nng_pipe.5.html">pipe</a> ID as the sole element in the header.
+If a message containing such a header is sent using a raw <em>bus</em> socket, then,
+the message will be delivered to all connected pipes <em>except</em> the one
+identified in the header.
+This behavior is intended for use with <a href="nng_device.3.html">device</a>
+configurations consisting of just a single socket.
+Such configurations are useful in the creation of rebroadcasters, and this
+capability prevents a message from being routed back to its source.
+If no header is present, then a message is sent to all connected pipes.</p>
+</div>
+<div class="paragraph">
+<p>When using &#8220;cooked&#8221; <em>bus</em> sockets, no message headers are present.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_bus_open.3.html">nng_bus_open(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_bus_open.3.html b/man/v1.2.4/nng_bus_open.3.html
new file mode 100644
index 00000000..b211509f
--- /dev/null
+++ b/man/v1.2.4/nng_bus_open.3.html
@@ -0,0 +1,111 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_bus_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_bus_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_bus_open - create bus socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/bus0/bus.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_bus0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_bus0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_bus0_open()</code> function creates a <a href="nng_bus.7.html"><em>bus</em></a> version 0
+<a href="nng_socket.5.html">socket</a> and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_bus0_open_raw()</code> function creates a <a href="nng_bus.7.html"><em>bus</em></a> version 0
+<a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode, and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_bus.7.html">nng_bus(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_clock.3supp.html b/man/v1.2.4/nng_clock.3supp.html
new file mode 100644
index 00000000..f2dd2ad8
--- /dev/null
+++ b/man/v1.2.4/nng_clock.3supp.html
@@ -0,0 +1,122 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_clock(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_clock(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_clock - get time</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">nng_time</span><span class="tok-p">;</span>
+
+<span class="tok-n">nng_time</span> <span class="tok-nf">nng_clock</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_clock()</code> returns the number of elapsed milliseconds since some
+arbitrary time in the past.
+The resolution of the clock depends on the underlying timing facilities
+of the system.
+This function may be used for timing, but applications should not expect
+very fine grained values.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The reference time will be the same for a given program,
+but different programs may have different references.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This function is intended mostly to help with setting appropriate
+timeouts using <a href="nng_cv_until.3supp.html"><code>nng_cv_until()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Milliseconds since reference time.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sleep_aio.3.html">nng_sleep_aio(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_cv_until.3supp.html">nng_cv_until(3supp)</a>,
+<a href="nng_msleep.3supp.html">nng_msleep(3supp)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_close.3.html b/man/v1.2.4/nng_close.3.html
new file mode 100644
index 00000000..07991751
--- /dev/null
+++ b/man/v1.2.4/nng_close.3.html
@@ -0,0 +1,121 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_close(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_close(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_close - close socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_close</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_close()</code> function closes the supplied socket, <em>s</em>.
+Messages that have been submitted for sending may be flushed or delivered,
+depending upon the transport.</p>
+</div>
+<div class="paragraph">
+<p>Further attempts to use the socket after this call returns will result
+in <code>NNG_ECLOSED</code>.
+Threads waiting for operations on the socket when this
+call is executed may also return with an <code>NNG_ECLOSED</code> result.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Closing the socket while data is in transmission will likely lead to loss
+of that data.
+There is no automatic linger or flush to ensure that the socket send buffers
+have completely transmitted.
+It is recommended to wait a brief period after calling
+<a href="nng_send.3.html"><code>nng_send()</code></a> or similar functions, before calling this
+function.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is already closed or was never opened.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_compat.3compat.html b/man/v1.2.4/nng_compat.3compat.html
new file mode 100644
index 00000000..74d15637
--- /dev/null
+++ b/man/v1.2.4/nng_compat.3compat.html
@@ -0,0 +1,437 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_compat(3compat)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_compat(3compat) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_compiling">Compiling</a></li>
+<li><a href="#_functions">Functions</a></li>
+<li><a href="#_caveats">Caveats</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_compat - compatibility with nanomsg 1.0</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/bus.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/pair.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/pipeline.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/pubsub.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/reqrep.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/survey.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/inproc.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/ipc.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/tcp.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/ws.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <a href="nng.7.html"><em>nng</em></a> library provides source-level compatibility for
+most <em>nanomsg</em> 1.0 applications.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This is intended to facilitate converting legacy applications to
+use the <em>nng</em> library.
+New applications should use the newer <a href="nng.7.html"><em>nng</em></a> API instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Applications making use of this must take care
+to link with <a href="libnng.3.html"><em>libnng</em></a> instead of <em>libnn</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While not recommended for long term use, the value returned by
+<a href="nng_socket_id.3.html"><code>nng_socket_id()</code></a> can be used with these functions
+just like a value returned by <a href="nn_socket.3compat.html"><code>nn_socket()</code></a>.
+This can be way to facilitate incremental transition to the new API.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng.7.html"><em>nng</em></a> API.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+While reasonable efforts have been made to provide for compatibility,
+some things may behave differently, and some less common parts of the
+<em>nanomsg</em> 1.0 API are not supported at this time, including certain
+options and the statistics API.
+See the <a href="#_caveats">Caveats</a> section below.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_compiling">Compiling</h3>
+<div class="paragraph">
+<p>When compiling legacy <em>nanomsg</em> applications, it will generally be
+necessary to change the include search path to add the &#8220;compat&#8221; subdirectory
+of the directory where headers were installed.
+For example, if <em>nng</em> is installed in <code>$prefix</code>, then header files will
+normally be located in <code>$prefix/include/nng</code>.
+In this case, to build legacy <em>nanomsg</em> apps against <em>nng</em> you would
+add <code>$prefix/include/nng/compat</code> to your compiler&#8217;s search path.</p>
+</div>
+<div class="paragraph">
+<p>Alternatively, you can change your source code so that <code>#include</code> statements
+referring to <code>&lt;nanomsg&gt;</code> instead refer to <code>&lt;nng/compat/nanomsg&gt;</code>.
+For example, instead of:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nanomsg/reqrep.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>you would have this:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/compat/nanomsg/nn.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/compat/nanomsg/reqrep.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Legacy applications built using these methods should be linked against <em>libnng</em>
+instead of <em>libnn</em>, just like any other <em>nng</em> application.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_functions">Functions</h3>
+<div class="paragraph">
+<p>The following functions are provided:</p>
+</div>
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<a href="nn_socket.3compat.html"><code>nn_socket()</code></a>
+</td>
+<td class="hdlist2">
+<p>create socket</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_getsockopt.3compat.html"><code>nn_getsockopt()</code></a>
+</td>
+<td class="hdlist2">
+<p>get socket option</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_setsockopt.3compat.html"><code>nn_setsockopt()</code></a>
+</td>
+<td class="hdlist2">
+<p>set socket option</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_bind.3compat.html"><code>nn_bind()</code></a>
+</td>
+<td class="hdlist2">
+<p>accept connections from remote peers</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_connect.3compat.html"><code>nn_connect()</code></a>
+</td>
+<td class="hdlist2">
+<p>connect to remote peer</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_send.3compat.html"><code>nn_send()</code></a>
+</td>
+<td class="hdlist2">
+<p>send data</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_recv.3compat.html"><code>nn_recv()</code></a>
+</td>
+<td class="hdlist2">
+<p>receive data</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_shutdown.3compat.html"><code>nn_shutdown()</code></a>
+</td>
+<td class="hdlist2">
+<p>shut down endpoint</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_close.3compat.html"><code>nn_close()</code></a>
+</td>
+<td class="hdlist2">
+<p>close socket</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_poll.3compat.html"><code>nn_poll()</code></a>
+</td>
+<td class="hdlist2">
+<p>poll sockets</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_device.3compat.html"><code>nn_device()</code></a>
+</td>
+<td class="hdlist2">
+<p>create forwarding device</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_recvmsg.3compat.html"><code>nn_recvmsg()</code></a>
+</td>
+<td class="hdlist2">
+<p>receive message</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_sendmsg.3compat.html"><code>nn_sendmsg()</code></a>
+</td>
+<td class="hdlist2">
+<p>send message</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_cmsg.3compat.html"><code>nn_cmsg()</code></a>
+</td>
+<td class="hdlist2">
+<p>message control data</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_get_statistic.3compat.html"><code>nn_get_statistic()</code></a>
+</td>
+<td class="hdlist2">
+<p>get statistic (stub)</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_allocmsg.3compat.html"><code>nn_allocmsg()</code></a>
+</td>
+<td class="hdlist2">
+<p>allocate message</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_reallocmsg.3compat.html"><code>nn_reallocmsg()</code></a>
+</td>
+<td class="hdlist2">
+<p>reallocate message</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_freemsg.3compat.html"><code>nn_freemsg()</code></a>
+</td>
+<td class="hdlist2">
+<p>free message</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_errno.3compat.html"><code>nn_errno()</code></a>
+</td>
+<td class="hdlist2">
+<p>return most recent error</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_strerror.3compat.html"><code>nn_strerror()</code></a>
+</td>
+<td class="hdlist2">
+<p>return message for error</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<a href="nn_term.3compat.html"><code>nn_term()</code></a>
+</td>
+<td class="hdlist2">
+<p>terminate library</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_caveats">Caveats</h3>
+<div class="paragraph">
+<p>The following caveats apply when using the legacy API with <em>nng</em>.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Socket numbers can be quite large.
+The legacy <em>libnanomsg</em> attempted to reuse socket numbers, like
+file descriptors in UNIX systems.
+The <em>nng</em> library avoids this to prevent accidental reuse or
+collision after a descriptor is closed.
+Consequently, socket numbers can become quite large, and should
+probably not be used for array indices.</p>
+</li>
+<li>
+<p>The following options (<code>nn_getsockopt</code>) are unsupported:
+<code>NN_SNDPRIO</code>, <code>NN_RCVPRIO</code>, <code>NN_IPV4ONLY</code>.
+The priority options may be supported in the future, when
+the underlying capability is present in <em>nng</em>.</p>
+</li>
+<li>
+<p>Access to statistics using this legacy API
+(<a href="nn_get_statistic.3compat.html"><code>nn_get_statistic()</code></a>) is unsupported.</p>
+</li>
+<li>
+<p>Some transports can support longer URLs than legacy <em>libnanomsg</em> can.
+It is a good idea to use short pathnames in URLs if interoperability
+is a concern.</p>
+</li>
+<li>
+<p>Only absolute paths are supported in <code>ipc://</code> URLs.
+For example, <code>ipc:///tmp/mysocket</code> is acceptable, but <code>ipc://mysocket</code> is not.</p>
+</li>
+<li>
+<p>The WebSocket transport in this implementation (<code>ws://</code> URLs)
+only supports BINARY frames.</p>
+</li>
+<li>
+<p>Some newer transports are unusable from this mode.
+In particular, this legacy API offers no way to configure
+TLS or ZeroTier parameters that may be required for use.</p>
+</li>
+<li>
+<p>ABI versioning of the compatibility layer is not supported,
+and the <code>NN_VERSION_</code> macros are not present.</p>
+</li>
+<li>
+<p>Runtime symbol information is not implemented.
+Specifically, there is no <code>nn_symbol()</code> function yet.
+(This may be addressed later if there is a need.)</p>
+</li>
+<li>
+<p>The TCP transport (<code>tcp://</code> URLs) does not support specifying the local
+address or interface when binding. (This could be fixed in the future,
+but most likely this will be available only using the new API.)</p>
+</li>
+<li>
+<p>The values of <code>NN_RCVMAXSIZE</code> are constrained.
+Specifically, values set larger than 2GB using the new API will be reported
+as unlimited (<code>-1</code>) in the new API, and the value <code>0</code> will disable any
+enforcement, just like <code>-1</code>.
+(There is no practical reason to ever want to limit the receive size to
+zero.)</p>
+</li>
+<li>
+<p>This implementation counts buffers in terms of messages rather than bytes.
+As a result, the buffer sizes accessed with <code>NN_SNDBUF</code> and <code>NN_RCVBUF</code> are
+rounded up to a whole number of kilobytes, then divided by 1024, in order
+to approximate buffering assuming 1 KB messages.
+Few applications should need to adjust the default values.</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx.5.html b/man/v1.2.4/nng_ctx.5.html
new file mode 100644
index 00000000..e91ebb59
--- /dev/null
+++ b/man/v1.2.4/nng_ctx.5.html
@@ -0,0 +1,272 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#NNG_CTX_INITIALIZER">Initialization</a></li>
+</ul>
+</li>
+<li><a href="#_example">EXAMPLE</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx - protocol context</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_ctx_s</span> <span class="tok-n">nng_ctx</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_ctx</code> is a handle to an underlying &#8220;context&#8221; object,
+which keeps the protocol state for some stateful protocols.
+The purpose of a separate context object is to permit applications to
+share a single socket, with its various underlying
+<a href="nng_dialer.5.html">dialers</a>,
+<a href="nng_listener.5.html">listeners</a>,
+and <a href="nng_pipe.5.html">pipes</a>,
+while still benefiting from separate state tracking.</p>
+</div>
+<div class="paragraph">
+<p>For example, a <a href="nng_req.7.html"><em>req</em></a> context will contain the request ID
+of any sent request, a timer to retry the request on failure, and so forth.
+A separate context on the same socket can have similar data, but corresponding
+to a completely different request.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <code>nng_ctx</code> structure is always passed by value (both
+for input parameters and return values), and should be treated opaquely.
+Passing structures this way gives the compiler a chance to perform
+accurate type checks in functions passing values of this type.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>All contexts share the same socket, and so some options, as well as the
+underlying transport details, will be common to all contexts on that socket.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not every protocol supports separate contexts.
+See the protocol-specific documentation for further details about whether
+contexts are supported, and details about what options are supported for
+contexts.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Protocols that make use of contexts will also have a &#8220;default&#8221; context
+that is used when the socket global operations are used.
+Operations using the global context will generally not interfere with
+any other contexts, except that certain socket options may affect socket
+global behavior.</p>
+</div>
+<div class="paragraph">
+<p>
+Historically, applications wanting to use a stateful protocol concurrently
+would have to resort to <a href="nng.7.html#raw_mode">raw mode</a> sockets, which bypasses
+much of the various protocol handling, leaving it to up to the application
+to do so.
+Contexts make it possible to still benefit from advanced protocol handling,
+including timeouts, retries, and matching requests to responses, while doing so
+concurrently.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<a href="nng.7.html#raw_mode">Raw mode</a> sockets do not support contexts, since
+there is generally no state tracked for them, and thus contexts make no sense.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Contexts are an excellent mechanism to use when building concurrent
+applications, and should be used in lieu of
+<a href="nng.7.html#raw_mode">raw mode</a> sockets when possible.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Use of file descriptor polling (with descriptors
+obtained using the
+<a href="nng_options.5.html#NNG_OPT_RECVFD"><code>NNG_OPT_RECVFD</code></a> or
+<a href="nng_options.5.html#NNG_OPT_SENDFD"><code>NNG_OPT_SENDFD</code></a> options) while contexts
+are in use on the same socket is not supported, and may lead to unpredictable
+behavior.
+These asynchronous methods should not be mixed on the same socket.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="NNG_CTX_INITIALIZER">Initialization</h3>
+<div class="paragraph">
+<p>A context may be initialized using the macro <code>NNG_CTX_INITIALIZER</code>
+before it is opened, to prevent confusion with valid open contexts.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">EXAMPLE</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The following program fragment demonstrates the use of contexts to implement
+a concurrent <a href="nng_rep.7.html"><em>rep</em></a> service that simply echos messages back
+to the sender.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span>
+<span class="tok-k">struct</span> <span class="tok-n">echo_context</span> <span class="tok-p">{</span>
+ <span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">;</span>
+ <span class="tok-k">enum</span> <span class="tok-p">{</span> <span class="tok-n">INIT</span><span class="tok-p">,</span> <span class="tok-n">RECV</span><span class="tok-p">,</span> <span class="tok-n">SEND</span> <span class="tok-p">}</span> <span class="tok-n">state</span><span class="tok-p">;</span>
+<span class="tok-p">};</span>
+
+<span class="tok-kt">void</span>
+<span class="tok-nf">echo</span><span class="tok-p">(</span><span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">)</span>
+<span class="tok-p">{</span>
+ <span class="tok-k">struct</span> <span class="tok-n">echo_context</span> <span class="tok-o">*</span><span class="tok-n">ec</span> <span class="tok-o">=</span> <span class="tok-n">arg</span><span class="tok-p">;</span>
+
+ <span class="tok-k">switch</span> <span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">state</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-k">case</span> <span class="tok-nl">INIT</span><span class="tok-p">:</span>
+ <span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">state</span> <span class="tok-o">=</span> <span class="tok-n">RECV</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_ctx_recv</span><span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">aio</span><span class="tok-p">);</span>
+ <span class="tok-k">return</span><span class="tok-p">;</span>
+ <span class="tok-k">case</span> <span class="tok-nl">RECV</span><span class="tok-p">:</span>
+ <span class="tok-k">if</span> <span class="tok-p">(</span><span class="tok-n">nng_aio_result</span><span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">aio</span><span class="tok-p">)</span> <span class="tok-o">!=</span> <span class="tok-mi">0</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-c1">// ... handle error</span>
+ <span class="tok-p">}</span>
+ <span class="tok-c1">// We reuse the message on the ec-&gt;aio</span>
+ <span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">state</span> <span class="tok-o">=</span> <span class="tok-n">SEND</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_ctx_send</span><span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">aio</span><span class="tok-p">);</span>
+ <span class="tok-k">return</span><span class="tok-p">;</span>
+ <span class="tok-k">case</span> <span class="tok-nl">SEND</span><span class="tok-p">:</span>
+ <span class="tok-k">if</span> <span class="tok-p">(</span><span class="tok-n">nng_aio_result</span><span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">aio</span><span class="tok-p">)</span> <span class="tok-o">!=</span> <span class="tok-mi">0</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-c1">// ... handle error</span>
+ <span class="tok-p">}</span>
+ <span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">state</span> <span class="tok-o">=</span> <span class="tok-n">RECV</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_ctx_recv</span><span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-n">ec</span><span class="tok-o">-&gt;</span><span class="tok-n">aio</span><span class="tok-p">);</span>
+ <span class="tok-k">return</span><span class="tok-p">;</span>
+ <span class="tok-p">}</span>
+<span class="tok-p">}</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Given the above fragment, the following example shows setting up the
+service. It assumes that the <a href="nng_socket.5.html">socket</a> has already been
+created and any transports set up as well with functions such as
+<a href="nng_dial.3.html"><code>nng_dial()</code></a>
+or <a href="nng_listen.3.html"><code>nng_listen()</code></a>.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#define CONCURRENCY 1024</span>
+
+<span class="tok-n">echo_context</span> <span class="tok-n">ecs</span><span class="tok-p">[</span><span class="tok-n">CONCURRENCY</span><span class="tok-p">];</span>
+
+<span class="tok-kt">void</span>
+<span class="tok-nf">start_echo_service</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">rep_socket</span><span class="tok-p">)</span>
+<span class="tok-p">{</span>
+ <span class="tok-k">for</span> <span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">i</span> <span class="tok-o">=</span> <span class="tok-mi">0</span><span class="tok-p">;</span> <span class="tok-n">i</span> <span class="tok-o">&lt;</span> <span class="tok-n">CONCURRENCY</span><span class="tok-p">;</span> <span class="tok-n">i</span><span class="tok-o">++</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-c1">// error checks elided for clarity</span>
+ <span class="tok-n">nng_ctx_open</span><span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-p">[</span><span class="tok-n">i</span><span class="tok-p">].</span><span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-n">rep_socket</span><span class="tok-p">)</span>
+ <span class="tok-n">nng_aio_alloc</span><span class="tok-p">(</span><span class="tok-n">ec</span><span class="tok-p">[</span><span class="tok-n">i</span><span class="tok-p">].</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-n">echo</span><span class="tok-p">,</span> <span class="tok-o">&amp;</span><span class="tok-n">e</span><span class="tok-p">[</span><span class="tok-n">i</span><span class="tok-p">]);</span>
+ <span class="tok-n">ec</span><span class="tok-p">[</span><span class="tok-n">i</span><span class="tok-p">].</span><span class="tok-n">state</span> <span class="tok-o">=</span> <span class="tok-n">INIT</span><span class="tok-p">;</span>
+ <span class="tok-n">echo</span><span class="tok-p">(</span><span class="tok-o">&amp;</span><span class="tok-n">ec</span><span class="tok-p">[</span><span class="tok-n">i</span><span class="tok-p">]);</span> <span class="tok-c1">// start it running</span>
+ <span class="tok-p">}</span>
+<span class="tok-p">}</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_ctx_close.3.html">nng_ctx_close(3)</a>,
+<a href="nng_ctx_open.3.html">nng_ctx_open(3)</a>,
+<a href="nng_ctx_getopt.3.html">nng_ctx_getopt(3)</a>,
+<a href="nng_ctx_id.3.html">nng_ctx_id(3)</a>,
+<a href="nng_ctx_recv.3.html">nng_ctx_recv(3)</a>,
+<a href="nng_ctx_send.3.html">nng_ctx_send(3)</a>,
+<a href="nng_ctx_setopt.3.html">nng_ctx_setopt(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_close.3.html b/man/v1.2.4/nng_ctx_close.3.html
new file mode 100644
index 00000000..3a19cf98
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_close.3.html
@@ -0,0 +1,116 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_close(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_close(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_close - close context</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_close</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_ctx_close()</code> function closes the context <em>ctx</em>.
+Messages that have been submitted for sending may be flushed or delivered,
+depending upon the transport.</p>
+</div>
+<div class="paragraph">
+<p>Further attempts to use the context after this call returns will result
+in <code>NNG_ECLOSED</code>.
+Threads waiting for operations on the context when this
+call is executed may also return with an <code>NNG_ECLOSED</code> result.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Closing the socket associated with <em>ctx</em>
+(using <a href="nng_close.3.html"><code>nng_close()</code></a>) also closes this context.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The context <em>ctx</em> is already closed or was never opened.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx_open.3.html">nng_ctx_open(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_get.3.html b/man/v1.2.4/nng_ctx_get.3.html
new file mode 100644
index 00000000..9eccaaca
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_get.3.html
@@ -0,0 +1,258 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_get(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_get(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_get - get context option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_get</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_ctx_get()</code> functions are used to retrieve option values for
+the <a href="nng_ctx.5.html">context</a> <em>ctx</em>.
+The actual options that may be retrieved in this way vary.
+A number of them are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Context options are protocol specific.
+The details will be documented with the protocol.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the context <em>ctx</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_get()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced by
+<em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in <em>valszp</em> does not exceed the original buffer size.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx_set.3.html">nng_ctx_set(3)</a>,
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_getopt.3.html b/man/v1.2.4/nng_ctx_getopt.3.html
new file mode 100644
index 00000000..279bb973
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_getopt.3.html
@@ -0,0 +1,270 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_getopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_getopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_getopt - get context option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_getopt</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_getopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_getopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_getopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_getopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_getopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_getopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_ctx_get.3.html">nng_ctx_get</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_ctx_getopt()</code> functions are used to retrieve option values for
+the <a href="nng_ctx.5.html">context</a> <em>ctx</em>.
+The actual options that may be retrieved in this way vary.
+A number of them are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Context options are protocol specific.
+The details will be documented with the protocol.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the context <em>ctx</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_getopt()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced by
+<em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in <em>valszp</em> does not exceed the original buffer size.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_getopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_getopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_getopt_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_getopt_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_getopt_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_getopt_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx_setopt.3.html">nng_ctx_setopt(3)</a>,
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_id.3.html b/man/v1.2.4/nng_ctx_id.3.html
new file mode 100644
index 00000000..19e825e5
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_id.3.html
@@ -0,0 +1,104 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_id(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_id(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_id - return numeric context identifier</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_id</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">c</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_ctx_id()</code> function returns a positive identifier for the context <em>c</em>,
+if it is valid.
+Otherwise it returns <code>-1</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+A context is considered valid if it was ever opened with
+<a href="nng_ctx_open.3.html"><code>nng_ctx_open()</code></a> function.
+Contexts that are allocated on the stack or statically should be
+initialized with the macro
+<a href="nng_ctx.5.html#NNG_CTX_INITIALIZER"><code>NNG_CTX_INITIALIZER</code></a> to ensure that
+they cannot be confused with a valid context before they are opened.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the positive value for the context identifier, or
+<code>-1</code> if the context is invalid.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_open.3.html b/man/v1.2.4/nng_ctx_open.3.html
new file mode 100644
index 00000000..26ba2b84
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_open.3.html
@@ -0,0 +1,151 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_open - create context</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_open</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-o">*</span><span class="tok-n">ctxp</span><span class="tok-p">,</span> <span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_ctx_open()</code> function creates a separate context to be used with
+the socket <em>s</em>,
+and returns it at the location pointed by <em>ctxp</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not every protocol supports creation of separate contexts.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Contexts allow the independent and concurrent use of stateful operations
+using the same socket.
+For example, two different contexts created on a <a href="nng_rep.7.html"><em>rep</em></a>
+socket can each receive requests, and send replies to them, without any
+regard to or interference with each other.</p>
+</div>
+<div class="paragraph">
+<p>
+TIP: Using contexts is an excellent way to write simpler concurrent
+applications, while retaining the benefits of the protocol-specific
+advanced processing, avoiding the need to bypass that with
+<a href="nng.7.html#raw_mode">raw mode</a> sockets.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Use of contexts with <a href="nng.7.html#raw_mode">raw mode</a> sockets is
+nonsensical, and not supported.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol does not support separate contexts, or the socket was opened in raw mode.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx_close.3.html">nng_ctx_close(3)</a>,
+<a href="nng_ctx_getopt.3.html">nng_ctx_getopt(3)</a>,
+<a href="nng_ctx_recv.3.html">nng_ctx_recv(3)</a>,
+<a href="nng_ctx_send.3.html">nng_ctx_send(3)</a>,
+<a href="nng_ctx_setopt.3.html">nng_ctx_setopt(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_rep.7.html">nng_rep(7)</a>,
+<a href="nng_req.7.html">nng_req(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_recv.3.html b/man/v1.2.4/nng_ctx_recv.3.html
new file mode 100644
index 00000000..168baf47
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_recv.3.html
@@ -0,0 +1,182 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_recv(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_recv(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_recv - receive message using context asynchronously</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_ctx_recv</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_ctx_recv()</code> receives a <a href="nng_msg.5.html">message</a> using the
+<a href="nng_ctx.5.html">context</a> <em>s</em> asynchronously.</p>
+</div>
+<div class="paragraph">
+<p>When a message is successfully received by the context, it is
+stored in the <em>aio</em> by an internal call equivalent to
+<a href="nng_aio_set_msg.3.html"><code>nng_aio_set_msg()</code></a>, then the completion
+callback on the <em>aio</em> is executed.
+In this case, <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a> will
+return zero.
+The callback function is responsible for retrieving the message
+and disposing of it appropriately.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Failing to accept and dispose of messages in this
+case can lead to memory leaks.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>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 <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a> will be non-zero.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The semantics of what receiving a message means varies from protocol to
+protocol, so examination of the protocol documentation is encouraged.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None. (The operation completes asynchronously.)</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The context <em>ctx</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for context <em>ctx</em> does not support receiving.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The context <em>ctx</em> cannot receive data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The receive timeout expired.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_send.3.html b/man/v1.2.4/nng_ctx_send.3.html
new file mode 100644
index 00000000..2eb34618
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_send.3.html
@@ -0,0 +1,214 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_send(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_send(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_send - send message using context asynchronously</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_ctx_send</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_ctx_send()</code> sends a <a href="nng_msg.5.html">message</a> using the
+<a href="nng_ctx.5.html">context</a> <em>ctx</em> asynchronously.</p>
+</div>
+<div class="paragraph">
+<p>The message to send must have previously been set on the <em>aio</em>
+using the <a href="nng_aio_set_msg.3.html"><code>nng_aio_set_msg()</code></a> function.
+The function assumes &#8220;ownership&#8221; of the message.</p>
+</div>
+<div class="paragraph">
+<p>If the message was successfully queued for delivery to the socket,
+then the <em>aio</em> will be completed, and <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>
+will return zero.
+In this case the socket will dispose of the message when it is finished with it.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The operation will be &#8220;completed&#8221;, and the callback associated
+with the <em>aio</em> executed, as soon as the socket accepts the message
+for sending.
+This does <em>not</em> 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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If the operation fails for any reason (including cancellation or timeout),
+then the <em>aio</em> callback will be executed and
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a> will return a non-zero error status.
+In this case, the callback has a responsibility to retrieve the message from
+the <em>aio</em> with <a href="nng_aio_get_msg.3.html"><code>nng_aio_get_msg()</code></a> and dispose of
+it appropriately.
+(This may include retrying the send operation on the same or a different
+socket, or deallocating the message with <a href="nng_msg_free.3.html"><code>nng_msg_free()</code></a>.)</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The semantics of what sending a message means varies from protocol to
+protocol, so examination of the protocol documentation is encouraged.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Context send operations are asynchronous.
+If a synchronous operation is needed, one can be constructed by using a
+<code>NULL</code> callback on the <em>aio</em> and then waiting for the operation using
+<a href="nng_aio_wait.3.html"><code>nng_aio_wait()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None. (The operation completes asynchronously.)</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The context <em>ctx</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EMSGSIZE</code>
+</td>
+<td class="hdlist2">
+<p>The message is too large.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for context <em>ctx</em> does not support sending.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The context <em>ctx</em> cannot send data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The send timeout expired.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_set.3.html b/man/v1.2.4/nng_ctx_set.3.html
new file mode 100644
index 00000000..fa4e3437
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_set.3.html
@@ -0,0 +1,243 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_set(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_set(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_set - set context option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_set</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_set_bool</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_set_int</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_set_ms</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_set_size</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_set_string</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_set_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="#">nng_ctx_set</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_ctx_set()</code> functions are used to configure options for
+the context <em>ctx</em>.
+The actual options that may be configured in this way vary, and are
+specified by <em>opt</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Context options are protocol specific.
+The details will be documented with the protocol.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_set()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_set_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_set_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_set_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_set_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_set_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_set_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket is in an inappropriate state for setting this option.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx_get.3.html">nng_ctx_get(3)</a>,
+<a href="nng_socket_set.3.html">nng_socket_set(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ctx_setopt.3.html b/man/v1.2.4/nng_ctx_setopt.3.html
new file mode 100644
index 00000000..7c62076b
--- /dev/null
+++ b/man/v1.2.4/nng_ctx_setopt.3.html
@@ -0,0 +1,243 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ctx_setopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ctx_setopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ctx_setopt - set context option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_setopt</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_setopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_setopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_setopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_setopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_setopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ctx_setopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_ctx</span> <span class="tok-n">ctx</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_ctx_set.3.html">nng_ctx_set</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_ctx_setopt()</code> functions are used to configure options for
+the context <em>ctx</em>.
+The actual options that may be configured in this way vary, and are
+specified by <em>opt</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Context options are protocol specific.
+The details will be documented with the protocol.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_setopt()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_ctx_setopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_setopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_setopt_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_setopt_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_setopt_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_ctx_setopt_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket is in an inappropriate state for setting this option.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx_getopt.3.html">nng_ctx_getopt(3)</a>,
+<a href="nng_setopt.3.html">nng_setopt(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_cv_alloc.3supp.html b/man/v1.2.4/nng_cv_alloc.3supp.html
new file mode 100644
index 00000000..3fff3813
--- /dev/null
+++ b/man/v1.2.4/nng_cv_alloc.3supp.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_cv_alloc(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_cv_alloc(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_cv_alloc - allocate condition variable</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_cv</span> <span class="tok-n">nng_cv</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_cv_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_cv</span> <span class="tok-o">**</span><span class="tok-n">cvp</span><span class="tok-p">,</span> <span class="tok-n">nng_mtx</span> <span class="tok-o">*</span><span class="tok-n">mtx</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_cv_alloc()</code> function allocates a condition variable, using
+the mutex <em>mtx</em>, and returns it in <em>cvp</em>.</p>
+</div>
+<div class="paragraph">
+<p>Every condition variable is associated with a mutex, which must be
+owned when a thread waits for the condition using
+<a href="nng_cv_wait.3supp.html"><code>nng_cv_wait()</code></a> or
+<a href="nng_cv_until.3supp.html"><code>nng_cv_until()</code></a>.
+The mutex must also be owned when signaling the condition using the
+<a href="nng_cv_wake.3supp.html"><code>nng_cv_wake()</code></a> or
+<a href="nng_cv_wake1.3supp.html"><code>nng_cv_wake1()</code></a> functions.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_free.3supp.html">nng_cv_free(3supp)</a>,
+<a href="nng_cv_until.3supp.html">nng_cv_until(3supp)</a>,
+<a href="nng_cv_wait.3supp.html">nng_cv_wait(3supp)</a>,
+<a href="nng_cv_wake.3supp.html">nng_cv_wake(3supp)</a>,
+<a href="nng_cv_wake1.3supp.html">nng_cv_wake1(3supp)</a>,
+<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_cv_free.3supp.html b/man/v1.2.4/nng_cv_free.3supp.html
new file mode 100644
index 00000000..2c8a1bdd
--- /dev/null
+++ b/man/v1.2.4/nng_cv_free.3supp.html
@@ -0,0 +1,85 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_cv_free(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_cv_free(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_cv_free - free condition variable</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_cv_free</span><span class="tok-p">(</span><span class="tok-n">nng_cv</span> <span class="tok-o">*</span><span class="tok-n">cv</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_cv_free()</code> function frees the condition variable <em>cv</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_cv_until.3supp.html b/man/v1.2.4/nng_cv_until.3supp.html
new file mode 100644
index 00000000..9de8522c
--- /dev/null
+++ b/man/v1.2.4/nng_cv_until.3supp.html
@@ -0,0 +1,149 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_cv_until(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_cv_until(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_example">EXAMPLE</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_cv_until - wait for condition or timeout</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_cv_until</span><span class="tok-p">(</span><span class="tok-n">nng_cv</span> <span class="tok-o">*</span><span class="tok-n">cv</span><span class="tok-p">,</span> <span class="tok-n">nng_time</span> <span class="tok-n">when</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_cv_until()</code> waits until either the condition variable <em>cv</em> is signaled
+by another thread calling either <a href="nng_cv_wake.3supp.html"><code>nng_cv_wake()</code></a> or
+<a href="nng_cv_wake1.3supp.html"><code>nng_cv_wake1()</code></a>, or the system clock (as tracked
+by <a href="nng_clock.3supp.html"><code>nng_clock()</code></a>) reaches <em>when</em>.</p>
+</div>
+<div class="paragraph">
+<p>The caller must have have ownership of the mutex that was used when
+<em>cv</em> was allocated.
+This function will drop the ownership of that mutex, and reacquire it
+atomically just before returning to the caller.
+(The waiting is done without holding the mutex.)</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Any condition may be used or checked, but the condition must be
+checked, as it is possible for this function to wake up &#8220;spuriously&#8221;.
+The best way to do this is inside a loop that repeats until the condition
+tests for true.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">EXAMPLE</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The following example demonstrates use of this function:</p>
+</div>
+<div class="listingblock">
+<div class="title">Example 1: Waiting for the condition</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span>
+ <span class="tok-n">nng_mtx_lock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span> <span class="tok-c1">// assume cv was allocated using m</span>
+ <span class="tok-k">while</span> <span class="tok-p">(</span><span class="tok-o">!</span><span class="tok-n">condition_true</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-k">if</span> <span class="tok-p">(</span><span class="tok-n">nng_cv_wait</span><span class="tok-p">(</span><span class="tok-n">cv</span><span class="tok-p">)</span> <span class="tok-o">==</span> <span class="tok-n">NNG_ETIMEDOUT</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-n">printf</span><span class="tok-p">(</span><span class="tok-s">&quot;Time out reached!</span><span class="tok-se">\n</span><span class="tok-s">&quot;</span><span class="tok-p">);</span>
+ <span class="tok-k">break</span><span class="tok-p">;</span>
+ <span class="tok-p">}</span>
+ <span class="tok-p">}</span>
+ <span class="tok-c1">// condition_true is true</span>
+ <span class="tok-n">nng_mtx_unlock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Example 2: Signaling the condition</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span> <span class="tok-n">nng_mtx_lock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span>
+ <span class="tok-n">condition_true</span> <span class="tok-o">=</span> <span class="tok-nb">true</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_cv_wake</span><span class="tok-p">(</span><span class="tok-n">cv</span><span class="tok-p">);</span>
+ <span class="tok-n">nng_mtx_unlock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng_cv_wait.3supp.html">nng_cv_wait(3supp)</a>,
+<a href="nng_cv_wake.3supp.html">nng_cv_wake(3supp)</a>,
+<a href="nng_cv_wake1.3supp.html">nng_cv_wake1(3supp)</a>,
+<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_mtx_lock.3supp.html">nng_mtx_lock(3supp)</a>,
+<a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_cv_wait.3supp.html b/man/v1.2.4/nng_cv_wait.3supp.html
new file mode 100644
index 00000000..84b1d994
--- /dev/null
+++ b/man/v1.2.4/nng_cv_wait.3supp.html
@@ -0,0 +1,145 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_cv_wait(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_cv_wait(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_example">EXAMPLE</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_cv_wait - wait for condition</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_cv_wait</span><span class="tok-p">(</span><span class="tok-n">nng_cv</span> <span class="tok-o">*</span><span class="tok-n">cv</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_cv_wait()</code> waits for the condition variable <em>cv</em> to be signaled
+by another thread calling either <a href="nng_cv_wake.3supp.html"><code>nng_cv_wake()</code></a> or
+<a href="nng_cv_wake1.3supp.html"><code>nng_cv_wake1()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>The caller must have have ownership of the mutex that was used when
+<em>cv</em> was allocated.
+This function will drop the ownership of that mutex, and reacquire it
+atomically just before returning to the caller.
+(The waiting is done without holding the mutex.)</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Any condition may be used or checked, but the condition must be
+checked, as it is possible for this function to wake up &#8220;spuriously&#8221;.
+The best way to do this is inside a loop that repeats until the condition
+tests for true.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">EXAMPLE</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The following example demonstrates use of this function:</p>
+</div>
+<div class="listingblock">
+<div class="title">Example 1: Waiting for the condition</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span>
+ <span class="tok-n">nng_mtx_lock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span> <span class="tok-c1">// assume cv was allocated using m</span>
+ <span class="tok-k">while</span> <span class="tok-p">(</span><span class="tok-o">!</span><span class="tok-n">condition_true</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-n">nng_cv_wait</span><span class="tok-p">(</span><span class="tok-n">cv</span><span class="tok-p">);</span>
+ <span class="tok-p">}</span>
+ <span class="tok-c1">// condition_true is true</span>
+ <span class="tok-n">nng_mtx_unlock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Example 2: Signaling the condition</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span> <span class="tok-n">nng_mtx_lock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span>
+ <span class="tok-n">condition_true</span> <span class="tok-o">=</span> <span class="tok-nb">true</span><span class="tok-p">;</span>
+ <span class="tok-n">cv_wake</span><span class="tok-p">(</span><span class="tok-n">cv</span><span class="tok-p">);</span>
+ <span class="tok-n">nng_mtx_unlock</span><span class="tok-p">(</span><span class="tok-n">m</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng_cv_until.3supp.html">nng_cv_until(3supp)</a>,
+<a href="nng_cv_wake.3supp.html">nng_cv_wake(3supp)</a>,
+<a href="nng_cv_wake1.3supp.html">nng_cv_wake1(3supp)</a>,
+<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_mtx_lock.3supp.html">nng_mtx_lock(3supp)</a>,
+<a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_cv_wake.3supp.html b/man/v1.2.4/nng_cv_wake.3supp.html
new file mode 100644
index 00000000..f63aa696
--- /dev/null
+++ b/man/v1.2.4/nng_cv_wake.3supp.html
@@ -0,0 +1,125 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_cv_wake(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_cv_wake(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_cv_wake - wake all waiters</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_cv_wake</span><span class="tok-p">(</span><span class="tok-n">nng_cv</span> <span class="tok-o">*</span><span class="tok-n">cv</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_cv_wake()</code> wakes any threads waiting for the condition variable <em>cv</em>
+to be signaled in the <a href="nng_cv_wait.3supp.html"><code>nng_cv_wait()</code></a> or
+<a href="nng_cv_until.3supp.html"><code>nng_cv_until()</code></a> functions.</p>
+</div>
+<div class="paragraph">
+<p>The caller must have have ownership of the mutex that was used when
+<em>cv</em> was allocated.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The caller should already have set the condition that the waiters
+will check, while holding the mutex.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This function wakes all threads, which is generally safer but can
+lead to a problem known as the &#8220;thundering herd&#8221; when there are many
+waiters, as they are all woken simultaneously.
+See <a href="nng_cv_wake1.3supp.html"><code>nng_cv_wake1()</code></a> for a solution to this problem.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng_cv_until.3supp.html">nng_cv_until(3supp)</a>,
+<a href="nng_cv_wait.3supp.html">nng_cv_wait(3supp)</a>,
+<a href="nng_cv_wake1.3supp.html">nng_cv_wake1(3supp)</a>,
+<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_mtx_lock.3supp.html">nng_mtx_lock(3supp)</a>,
+<a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_cv_wake1.3supp.html b/man/v1.2.4/nng_cv_wake1.3supp.html
new file mode 100644
index 00000000..0b30e9bd
--- /dev/null
+++ b/man/v1.2.4/nng_cv_wake1.3supp.html
@@ -0,0 +1,126 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_cv_wake1(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_cv_wake1(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_cv_wake1 - wake one waiter</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_cv_wake1</span><span class="tok-p">(</span><span class="tok-n">nng_cv</span> <span class="tok-o">*</span><span class="tok-n">cv</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_cv_wake1()</code> wakes at most one thread waiting for the condition
+variable <em>cv</em>
+to be signaled in the <a href="nng_cv_wait.3supp.html"><code>nng_cv_wait()</code></a> or
+<a href="nng_cv_until.3supp.html"><code>nng_cv_until()</code></a> functions.</p>
+</div>
+<div class="paragraph">
+<p>The caller must have have ownership of the mutex that was used when
+<em>cv</em> was allocated.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The caller should already have set the condition that the waiters
+will check, while holding the mutex.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While this function avoids the &#8220;thundering herd&#8221; problem, the
+caller cannot predict which waiter will be woken, and so the design must
+ensure that it is sufficient that <em>any</em> waiter be woken.
+When in doubt, it is safer to use <a href="nng_cv_wake.3supp.html"><code>nng_cv_wake()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng_cv_until.3supp.html">nng_cv_until(3supp)</a>,
+<a href="nng_cv_wait.3supp.html">nng_cv_wait(3supp)</a>,
+<a href="nng_cv_wake.3supp.html">nng_cv_wake(3supp)</a>,
+<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_mtx_lock.3supp.html">nng_mtx_lock(3supp)</a>,
+<a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_device.3.html b/man/v1.2.4/nng_device.3.html
new file mode 100644
index 00000000..5af4c89b
--- /dev/null
+++ b/man/v1.2.4/nng_device.3.html
@@ -0,0 +1,227 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_device(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_device(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_reflectors">Reflectors</a></li>
+<li><a href="#_forwarders">Forwarders</a></li>
+<li><a href="#_operation">Operation</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_device - message forwarding device</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_device</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s1</span><span class="tok-p">,</span> <span class="tok-n">nng_socket</span> <span class="tok-n">s2</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_device()</code> function forwards messages received from one
+<a href="nng_socket.5.html">socket</a> <em>s1</em> to another socket <em>s2</em>, and vice versa.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>Only <a href="nng_options.5.html#NNG_OPT_RAW">raw</a> mode sockets may be used with this
+function.
+These can be created using <code>_raw</code> forms of the various socket constructors,
+such as <a href="nng_req_open.3.html"><code>nng_req0_open_raw()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_device()</code> function does not return until one of the sockets
+is closed.</p>
+</div>
+<div class="sect2">
+<h3 id="_reflectors">Reflectors</h3>
+<div class="paragraph">
+<p>One of the sockets passed may be an unopened socket initialized with
+the <code>NNG_SOCKET_INITIALIZER</code> special value.
+If this is the case, then the other socket must be valid, and must use
+a protocol that is bidirectional and can peer with itself (such as
+<a href="nng_pair.7.html"><em>pair</em></a> or
+<a href="nng_bus.7.html"><em>bus</em></a>.)
+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.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_forwarders">Forwarders</h3>
+<div class="paragraph">
+<p>When both sockets are valid, then the result is a forwarder or proxy.
+In this case sockets <em>s1</em> and <em>s2</em> must be &#8220;compatible&#8221; 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 <em>s1</em> is a <a href="nng_pub.7.html"><em>pub</em></a> socket, then <em>s2</em> must
+be a <a href="nng_sub.7.html"><em>sub</em></a> socket.
+Or, if <em>s1</em> is a <a href="nng_bus.7.html"><em>bus</em></a> socket, then <em>s2</em> must also
+be a <em>bus</em> socket.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_operation">Operation</h3>
+<div class="paragraph">
+<p>The <code>nng_device()</code> function moves messages between the provided sockets.</p>
+</div>
+<div class="paragraph">
+<p>When a protocol has a backtrace style header, routing information
+is present in the header of received messages, and is copied to the
+header of the output bound message.
+The underlying raw mode protocols supply the necessary header
+adjustments to add or remove routing headers as needed.
+This allows replies to be
+returned to requesters, and responses to be routed back to surveyors.</p>
+</div>
+<div class="paragraph">
+<p>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 <a href="nng_options.5.html#NNG_OPT_MAXTTL"><code>NNG_OPT_MAXTTL</code></a>
+option.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Not all protocols have support for guarding against forwarding loops,
+and even for those that do, forwarding loops can be extremely detrimental
+to network performance.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Use the request/reply pattern, which includes automatic retries by
+the requester, if reliable delivery is needed.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function continues running, and only returns an appropriate error when
+one occurs, or if one of the sockets is closed.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>At least one of the sockets is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The sockets are not compatible, or are both invalid.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dial.3.html b/man/v1.2.4/nng_dial.3.html
new file mode 100644
index 00000000..8576dac5
--- /dev/null
+++ b/man/v1.2.4/nng_dial.3.html
@@ -0,0 +1,227 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dial(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dial(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dial - create and start dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dial</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">,</span> <span class="tok-n">nng_dialer</span> <span class="tok-o">*</span><span class="tok-n">dp</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_dial()</code> function creates a newly initialized
+<a href="nng_dialer.5.html"><code>nng_dialer</code></a> object,
+associated with socket <em>s</em>, and configured to dial the
+address specified by <em>url</em>, and starts it.
+If the value of <em>dp</em> is not <code>NULL</code>, then
+the newly created dialer is stored at the address indicated by <em>dp</em>.</p>
+</div>
+<div class="paragraph">
+<p>Dialers initiate a remote connection to a listener.
+Upon a successful
+connection being established, they create a <a href="nng_pipe.5.html">pipe</a>,
+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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While it is convenient to think of dialers as &#8220;clients&#8221;, 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 <a href="nng_req.7.html"><em>req</em></a>
+socket might have associated dialers, but might also have associated listeners.
+It may even have some of each at the same time!
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Normally, the first attempt to connect to the address indicated by <em>url</em> 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.</p>
+</div>
+<div class="paragraph">
+<p>However, if the special value <code>NNG_FLAG_NONBLOCK</code> is
+supplied in <em>flags</em>, then the connection attempt is made asynchronously.</p>
+</div>
+<div class="paragraph">
+<p>Furthermore, if the connection was closed for a synchronously dialed
+connection, the dialer will still attempt to redial asynchronously.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While <code>NNG_FLAG_NONBLOCK</code> can help an application be more resilient,
+it also generally makes diagnosing failures somewhat more difficult.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Because the dialer is started immediately, it is generally not possible
+to apply extra configuration; if that is needed applications should consider
+using <a href="nng_dialer_create.3.html"><code>nng_dialer_create()</code></a> and
+<a href="nng_dialer_start.3.html"><code>nng_dialer_start()</code></a> instead.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>url</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNREFUSED</code>
+</td>
+<td class="hdlist2">
+<p>The remote peer refused the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The remote peer reset the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> or an invalid <em>url</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPEERAUTH</code>
+</td>
+<td class="hdlist2">
+<p>Authentication or authorization failure.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPROTO</code>
+</td>
+<td class="hdlist2">
+<p>A protocol error occurred.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EUNREACHABLE</code>
+</td>
+<td class="hdlist2">
+<p>The remote address is not reachable.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_close.3.html">nng_dialer_close(3)</a>,
+<a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_dialer_start.3.html">nng_dialer_start(3)</a>,
+<a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer.5.html b/man/v1.2.4/nng_dialer.5.html
new file mode 100644
index 00000000..5c79756b
--- /dev/null
+++ b/man/v1.2.4/nng_dialer.5.html
@@ -0,0 +1,151 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#NNG_DIALER_INITIALIZER">Initialization</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer - dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_dialer_s</span> <span class="tok-n">nng_dialer</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_dialer</code> is a handle to a &#8220;dialer&#8221; object, which is responsible for
+creating a single <a href="nng_pipe.5.html"><code>nng_pipe</code></a> at a time by
+establishing an outgoing connection.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>Dialer objects are created by the
+<a href="nng_dialer_create.3.html"><code>nng_dialer_create()</code></a>
+or <a href="nng_dial.3.html"><code>nng_dial()</code></a> functions, and are always &#8220;owned&#8221;
+by a single <a href="nng_socket.5.html"><code>nng_socket</code></a>.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <code>nng_dialer</code> structure is always passed by value (both
+for input parameters and return values), and should be treated opaquely.
+Passing structures this way gives the compiler a chance to perform
+accurate type checks in functions passing values of this type.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+A given <a href="nng_socket.5.html"><code>nng_socket</code></a> may have multiple dialer
+objects, multiple <a href="nng_listener.5.html">listener</a> objects, or even some
+of both.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The client/server relationship described by dialer/listener is
+completely orthogonal to any similar relationship in the protocols.
+For example, a <a href="nng_rep.7.html"><em>rep</em></a> socket may use a dialer
+to connect to a listener on an <a href="nng_req.7.html"><em>req</em></a> socket.
+This orthogonality can lead to innovative solutions to otherwise
+challenging communications problems.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Dialer objects may be destroyed by the
+<a href="nng_dialer_close.3.html"><code>nng_dialer_close()</code></a> function.
+They are also closed when their &#8220;owning&#8221; socket is closed.</p>
+</div>
+<div class="sect2">
+<h3 id="NNG_DIALER_INITIALIZER">Initialization</h3>
+<div class="paragraph">
+<p>A dialer may be initialized using the macro <code>NNG_DIALER_INITIALIZER</code>
+before it is opened, to prevent confusion with valid open dialers.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dial.3.html">nng_dial(3)</a>,
+<a href="nng_dialer_close.3.html">nng_dialer_close(3)</a>,
+<a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>,
+<a href="nng_dialer_getopt.3.html">nng_dialer_getopt(3)</a>,
+<a href="nng_dialer_id.3.html">nng_dialer_id(3)</a>,
+<a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a>,
+<a href="nng_dialer_start.3.html">nng_dialer_start(3)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_close.3.html b/man/v1.2.4/nng_dialer_close.3.html
new file mode 100644
index 00000000..a723ede0
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_close.3.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_close(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_close(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_close - close dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_close</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_dialer_close()</code> function closes the dialer <em>d</em>.
+This also closes any <a href="nng_pipe.5.html"><code>nng_pipe</code></a> objects that have
+been created by the dialer.</p>
+</div>
+<div class="paragraph">
+<p>Once this function returns, the dialer <em>d</em> and any of its resources
+are deallocated.
+Therefore it is an error to attempt to access <em>d</em> after
+this function has returned.
+(Attempts to do so will result in <code>NNG_ECLOSED</code> errors.)</p>
+</div>
+<div class="paragraph">
+<p>Dialers are implicitly closed when the socket they are associated with is closed.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>d</em> does not refer to an open dialer.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_close.3.html">nng_close(3)</a>,
+<a href="nng_dial.3.html">nng_dial(3)</a>,
+<a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_create.3.html b/man/v1.2.4/nng_dialer_create.3.html
new file mode 100644
index 00000000..6543ccc5
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_create.3.html
@@ -0,0 +1,168 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_create(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_create(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_create - create dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_create</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-o">*</span><span class="tok-n">dialerp</span><span class="tok-p">,</span> <span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_dialer_create()</code> function creates a newly initialized
+<a href="nng_dialer.5.html"><code>nng_dialer</code></a> object, associated with socket <em>s</em>,
+and configured to connect to the
+address specified by <em>url</em>, and stores a pointer to at the location
+referenced by <em>dialerp</em>.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While it is convenient to think of dialers as &#8220;clients&#8221;, 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 <a href="nng_req.7.html"><em>req</em></a>
+socket might have associated dialers, but might also have associated listeners.
+It may even have some of each at the same time!
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The dialer is not started, but may be further configured with
+the <a href="nng_dialer_setopt.3.html"><code>nng_dialer_setopt()</code></a> family of functions.</p>
+</div>
+<div class="paragraph">
+<p>Once it is fully configured, the dialer may be started using the
+<a href="nng_dialer_start.3.html"><code>nng_dialer_start()</code></a> function.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+If no specific configuration is required, consider using the
+simpler <a href="nng_dial.3.html"><code>nng_dial()</code></a> function instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>url</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dial.3.html">nng_dial(3)</a>,
+<a href="nng_dialer_close.3.html">nng_dialer_close(3)</a>,
+<a href="nng_dialer_getopt.3.html">nng_dialer_getopt(3)</a>,
+<a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a>,
+<a href="nng_dialer_start.3.html">nng_dialer_start(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_get.3.html b/man/v1.2.4/nng_dialer_get.3.html
new file mode 100644
index 00000000..0e8020ed
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_get.3.html
@@ -0,0 +1,267 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_get(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_get(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_get - get dialer option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_addr</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">sap</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_dialer_get()</code> functions are used to retrieve option values for
+the <a href="nng_dialer.5.html">dialer</a> <em>d</em>.
+The actual options that may be retrieved in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the dialer <em>d</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_get()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced
+by <em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;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 <em>valszp</em> does not
+exceed the original buffer size to check for truncation.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_get_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_get_addr()</code></dt>
+<dd>
+<p>This function is used to retrieve an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+into the value referenced by <em>sap</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>d</em> does not refer to an open dialer.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_dialer_set.3.html">nng_dialer_set(3)</a>
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_getopt.3.html b/man/v1.2.4/nng_dialer_getopt.3.html
new file mode 100644
index 00000000..486004fd
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_getopt.3.html
@@ -0,0 +1,279 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_getopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_getopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_getopt - get dialer option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_sockaddr</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">sap</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_getopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_dialer_get.3.html">nng_dialer_get</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_dialer_getopt()</code> functions are used to retrieve option values for
+the <a href="nng_dialer.5.html">dialer</a> <em>d</em>.
+The actual options that may be retrieved in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the dialer <em>d</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_getopt()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced
+by <em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;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 <em>valszp</em> does not
+exceed the original buffer size to check for truncation.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_getopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_getopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_getopt_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_getopt_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_getopt_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_getopt_sockaddr()</code></dt>
+<dd>
+<p>This function is used to retrieve an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+into the value referenced by <em>sap</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_getopt_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_getopt_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>d</em> does not refer to an open dialer.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a>
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_id.3.html b/man/v1.2.4/nng_dialer_id.3.html
new file mode 100644
index 00000000..2612bef9
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_id.3.html
@@ -0,0 +1,105 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_id(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_id(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_id - return numeric dialer identifier</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_id</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_dialer_id()</code> function returns a positive identifier for the dialer <em>d</em>,
+if it is valid.
+Otherwise it returns <code>-1</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+A dialer is considered valid if it was ever created with the
+<a href="nng_dialer_create.3.html"><code>nng_dialer_create()</code></a> or
+<a href="nng_dial.3.html"><code>nng_dial()</code></a> functions.
+Dialers that are allocated on the stack or statically should be
+initialized with the macro
+<a href="nng_ctx.5.html#NNG_DIALER_INITIALIZER"><code>NNG_DIALER_INITIALIZER</code></a> to ensure that
+they cannot be confused with a valid dialer before they are created properly.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the positive value for the dialer identifier, or
+<code>-1</code> if the dialer is invalid.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_set.3.html b/man/v1.2.4/nng_dialer_set.3.html
new file mode 100644
index 00000000..9d5a3989
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_set.3.html
@@ -0,0 +1,274 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_set(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_set(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_set - set dialer option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set_bool</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set_int</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set_ms</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set_size</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set_string</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_set_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_dialer_set()</code> functions are used to configure options for
+the <a href="nng_dialer.5.html">dialer</a> <em>d</em>.
+The actual options that may be configured in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options are documented with the
+transports themselves.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Once a dialer has started, it is generally not possible to change
+its configuration.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is configured on the dialer <em>d</em>.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_set()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_set_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_set_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_set_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_set_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed by other functions.
+For example, TLS configuration objects created with
+(<a href="nng_tls_config_alloc.3tls.html"><code>nng_tls_config_alloc()</code></a>)
+can be passed this way.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_set_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_set_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_set_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and such.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>d</em> does not refer to an open dialer.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The dialer <em>d</em> is already started.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_dialer_get.3.html">nng_dialer_get(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_setopt.3.html b/man/v1.2.4/nng_dialer_setopt.3.html
new file mode 100644
index 00000000..303fac33
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_setopt.3.html
@@ -0,0 +1,286 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_setopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_setopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_setopt - set dialer option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_setopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_dialer_set.3.html">nng_dialer_set</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_dialer_setopt()</code> functions are used to configure options for
+the <a href="nng_dialer.5.html">dialer</a> <em>d</em>.
+The actual options that may be configured in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options are documented with the
+transports themselves.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Once a dialer has started, it is generally not possible to change
+its configuration.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is configured on the dialer <em>d</em>.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_setopt()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_setopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_setopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_setopt_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_setopt_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed by other functions.
+For example, TLS configuration objects created with
+(<a href="nng_tls_config_alloc.3tls.html"><code>nng_tls_config_alloc()</code></a>)
+can be passed this way.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_dialer_setopt_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_setopt_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_dialer_setopt_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and such.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>d</em> does not refer to an open dialer.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The dialer <em>d</em> is already started.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_dialer_getopt.3.html">nng_dialer_getopt(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_dialer_start.3.html b/man/v1.2.4/nng_dialer_start.3.html
new file mode 100644
index 00000000..2cba9179
--- /dev/null
+++ b/man/v1.2.4/nng_dialer_start.3.html
@@ -0,0 +1,207 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_dialer_start(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_dialer_start(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_dialer_start - start dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_dialer_start</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span> <span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_dialer_start()</code> function starts the dialer <em>d</em>.</p>
+</div>
+<div class="paragraph">
+<p>This causes the dialer to start connecting to the address with which it was
+created.</p>
+</div>
+<div class="paragraph">
+<p>When a connection is established, it results in a pipe being created,
+which will be attached to the dialer&#8217;s socket.</p>
+</div>
+<div class="paragraph">
+<p>Normally, the first attempt to connect to the dialer&#8217;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.</p>
+</div>
+<div class="paragraph">
+<p>However, if the special value <code>NNG_FLAG_NONBLOCK</code> is
+supplied in <em>flags</em>, then the connection attempt is made asynchronously.</p>
+</div>
+<div class="paragraph">
+<p>Furthermore, if the connection was closed for a synchronously dialed
+connection, the dialer will still attempt to redial asynchronously.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While <code>NNG_FLAG_NONBLOCK</code> can help an application be more resilient,
+it also generally makes diagnosing failures somewhat more difficult.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Once a dialer has started, it is generally not possible to change
+its configuration.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>url</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNREFUSED</code>
+</td>
+<td class="hdlist2">
+<p>The remote peer refused the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The remote peer reset the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPEERAUTH</code>
+</td>
+<td class="hdlist2">
+<p>Authentication or authorization failure.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPROTO</code>
+</td>
+<td class="hdlist2">
+<p>A protocol error occurred.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The dialer <em>d</em> is already started.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EUNREACHABLE</code>
+</td>
+<td class="hdlist2">
+<p>The remote address is not reachable.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dial.3.html">nng_dial(3)</a>,
+<a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_duration.5.html b/man/v1.2.4/nng_duration.5.html
new file mode 100644
index 00000000..9ad29657
--- /dev/null
+++ b/man/v1.2.4/nng_duration.5.html
@@ -0,0 +1,91 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_duration(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_duration(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_duration - relative time in milliseconds</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-kt">int32_t</span> <span class="tok-n">nng_duration</span><span class="tok-p">;</span>
+
+<span class="tok-cp">#define NNG_DURATION_INFINITE (-1)</span>
+<span class="tok-cp">#define NNG_DURATION_DEFAULT (-2)</span>
+<span class="tok-cp">#define NNG_DURATION_ZERO (0)</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_duration</code> is a relative time, measured in
+milliseconds.
+This type is most often used in conjunction with timers and timeouts.</p>
+</div>
+<div class="paragraph">
+<p>A couple of special values have been set aside, and carry special meanings.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_DURATION_DEFAULT</code></dt>
+<dd>
+<p>Indicates a context-specific default value should be used.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_DURATION_INFINITE</code></dt>
+<dd>
+<p>Effectively an infinite duration; used most often to disable timeouts.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_DURATION_ZERO</code></dt>
+<dd>
+<p>Zero length duration; used to perform a single polling operation.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_free.3.html b/man/v1.2.4/nng_free.3.html
new file mode 100644
index 00000000..f5d3df4c
--- /dev/null
+++ b/man/v1.2.4/nng_free.3.html
@@ -0,0 +1,116 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_free(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_free(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_free - free memory</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_free</span><span class="tok-p">(</span><span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">ptr</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_free()</code> function deallocates a memory region of size <em>size</em>,
+that was previously allocated by <a href="nng_alloc.3.html"><code>nng_alloc()</code></a> or
+<a href="nng_recv.3.html"><code>nng_recv()</code></a> with the <code>NNG_FLAG_ALLOC</code> flag.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+It is very important that <em>size</em> match the allocation size
+used to allocate the memory.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Do not attempt to use this function to deallocate memory
+obtained by a call to the system <code>malloc()</code> or <code>calloc()</code> functions,
+or the C&#43;&#43; <code>new</code> operator.
+Doing so may result in unpredictable
+behavior, including corruption of application memory.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_alloc.3.html">nng_alloc(3)</a>,
+<a href="nng_recv.3.html">nng_recv(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_getopt.3.html b/man/v1.2.4/nng_getopt.3.html
new file mode 100644
index 00000000..96c293db
--- /dev/null
+++ b/man/v1.2.4/nng_getopt.3.html
@@ -0,0 +1,271 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_getopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_getopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_getopt - get socket option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_getopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_socket_get.3.html">nng_socket_get</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_getopt()</code> functions are used to retrieve option values for
+the <a href="nng_socket.5.html">socket</a> <em>s</em>.
+The actual options that may be retrieved in this way vary.
+A number of them are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally transport-specific options and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the socket <em>s</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_getopt()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced by
+<em>valszp</em>.</p>
+<div class="paragraph">
+<p>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 referenced by <em>valszp</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in <em>valszp</em> does not exceed the original buffer size.</p>
+</div>
+<div class="paragraph">
+<p>It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_getopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_getopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_getopt_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_getopt_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_getopt_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_getopt_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_getopt_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_getopt.3.html">nng_dialer_getopt(3)</a>,
+<a href="nng_listener_getopt.3.html">nng_listener_getopt(3)</a>,
+<a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a>,
+<a href="nng_setopt.3.html">nng_setopt(3)</a>,
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_client_alloc.3http.html b/man/v1.2.4/nng_http_client_alloc.3http.html
new file mode 100644
index 00000000..4bccb00e
--- /dev/null
+++ b/man/v1.2.4/nng_http_client_alloc.3http.html
@@ -0,0 +1,107 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_client_alloc(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_client_alloc(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_client_alloc - allocate HTTP client</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_client_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_http_client</span> <span class="tok-o">*</span><span class="tok-n">clientp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_client_alloc()</code> allocates an HTTP client suitable for
+connecting to the server identified by <em>url</em> and stores a pointer to
+it in the location referenced by <em>clientp</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_client_free.3http.html">nng_http_client_free(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_url_parse.3.html">nng_url_parse(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_client_connect.3http.html b/man/v1.2.4/nng_http_client_connect.3http.html
new file mode 100644
index 00000000..ff234251
--- /dev/null
+++ b/man/v1.2.4/nng_http_client_connect.3http.html
@@ -0,0 +1,183 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_client_connect(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_client_connect(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_example">EXAMPLE</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_client_connect - establish HTTP client connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_client_connect</span><span class="tok-p">(</span><span class="tok-n">nng_http_client</span> <span class="tok-o">*</span><span class="tok-n">client</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_client_connect()</code> starts the process of establishing an HTTP
+connection from <em>client</em> to the server that was indicated in the URL that
+<em>client</em> was configured with.</p>
+</div>
+<div class="paragraph">
+<p>The result of the operation will be stored in the <em>aio</em> when the operation
+is complete, and will be obtainable via
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>On success, a pointer to the underlying HTTP client (type <code>nng_http_conn *</code>)
+will be stored in the first output result of the <em>aio</em>, and can be
+obtained by
+<a href="nng_aio_get_output.3.html"><code>nng_aio_get_output()</code></a> with an <em>index</em> of zero (0).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The client is configured with an invalid address.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNREFUSED</code>
+</td>
+<td class="hdlist2">
+<p>The TCP connection was refused by the server.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The TCP connection was reset by the server.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">EXAMPLE</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_http_client</span> <span class="tok-o">*</span><span class="tok-n">client</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">;</span>
+ <span class="tok-kt">int</span> <span class="tok-n">rv</span><span class="tok-p">;</span>
+
+ <span class="tok-c1">// Error checks elided for clarity.</span>
+ <span class="tok-n">nng_url_parse</span><span class="tok-p">(</span><span class="tok-o">&amp;</span><span class="tok-n">url</span><span class="tok-p">,</span> <span class="tok-s">&quot;http://www.google.com&quot;</span><span class="tok-p">);</span>
+ <span class="tok-n">nng_aio_alloc</span><span class="tok-p">(</span><span class="tok-o">&amp;</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-nb">NULL</span><span class="tok-p">,</span> <span class="tok-nb">NULL</span><span class="tok-p">);</span>
+ <span class="tok-n">nng_http_client_alloc</span><span class="tok-p">(</span><span class="tok-o">&amp;</span><span class="tok-n">client</span><span class="tok-p">,</span> <span class="tok-n">url</span><span class="tok-p">);</span>
+
+ <span class="tok-n">nng_http_client_connect</span><span class="tok-p">(</span><span class="tok-n">client</span><span class="tok-p">,</span> <span class="tok-n">aio</span><span class="tok-p">);</span>
+
+ <span class="tok-c1">// Wait for connection to establish (or attempt to fail).</span>
+ <span class="tok-n">nng_aio_wait</span><span class="tok-p">(</span><span class="tok-n">aio</span><span class="tok-p">);</span>
+
+ <span class="tok-k">if</span> <span class="tok-p">((</span><span class="tok-n">rv</span> <span class="tok-o">=</span> <span class="tok-n">nng_aio_result</span><span class="tok-p">(</span><span class="tok-n">aio</span><span class="tok-p">))</span> <span class="tok-o">!=</span> <span class="tok-mi">0</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-n">printf</span><span class="tok-p">(</span><span class="tok-s">&quot;Connection failed: %s</span><span class="tok-se">\n</span><span class="tok-s">&quot;</span><span class="tok-p">,</span> <span class="tok-n">nng_strerror</span><span class="tok-p">(</span><span class="tok-n">rv</span><span class="tok-p">));</span>
+ <span class="tok-p">}</span> <span class="tok-k">else</span> <span class="tok-p">{</span>
+ <span class="tok-c1">// Connection established, get it.</span>
+ <span class="tok-n">conn</span> <span class="tok-o">=</span> <span class="tok-n">nng_aio_get_output</span><span class="tok-p">(</span><span class="tok-n">aio</span><span class="tok-p">,</span> <span class="tok-mi">0</span><span class="tok-p">);</span>
+
+ <span class="tok-c1">// ... do something with it here</span>
+
+ <span class="tok-c1">// Close the connection when done to avoid leaking it.</span>
+ <span class="tok-n">nng_http_conn_close</span><span class="tok-p">(</span><span class="tok-n">conn</span><span class="tok-p">);</span>
+ <span class="tok-p">}</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_get_output.3.html">nng_aio_get_output(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_wait.3.html">nng_aio_wait(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_http_client_alloc.3http.html">nng_http_client_alloc(3http)</a>,
+<a href="nng_http_conn_close.3http.html">nng_http_conn_close(3http)</a>,
+<a href="nng_http_conn_read.3http.html">nng_http_conn_read(3http)</a>,
+<a href="nng_http_conn_write.3http.html">nng_http_conn_write(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_client_free.3http.html b/man/v1.2.4/nng_http_client_free.3http.html
new file mode 100644
index 00000000..99803878
--- /dev/null
+++ b/man/v1.2.4/nng_http_client_free.3http.html
@@ -0,0 +1,101 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_client_free(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_client_free(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_client_free - free HTTP client</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_client_free</span><span class="tok-p">(</span><span class="tok-n">nng_http_client</span> <span class="tok-o">*</span><span class="tok-n">client</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_client_free()</code> frees the HTTP client and any associated
+resources referenced by <em>client</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Any connections created by
+<a href="nng_http_client_connect.3http.html"><code>nng_http_client_connect()</code></a> are unaffected,
+and so the caller must close those explicitly if desired.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_client_alloc.3http.html">nng_http_client_alloc(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_client_get_tls.3http.html b/man/v1.2.4/nng_http_client_get_tls.3http.html
new file mode 100644
index 00000000..0238e0c6
--- /dev/null
+++ b/man/v1.2.4/nng_http_client_get_tls.3http.html
@@ -0,0 +1,125 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_client_get_tls(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_client_get_tls(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_client_get_tls - get HTTP client TLS configuration</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_client_get_tls</span><span class="tok-p">(</span><span class="tok-n">nng_http_client</span> <span class="tok-o">*</span><span class="tok-n">client</span><span class="tok-p">,</span> <span class="tok-n">nng_tls_config</span> <span class="tok-o">**</span><span class="tok-n">cfgp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_client_get_tls()</code> obtains the TLS configuration of <em>client</em> and
+saves a pointer to it in the address referenced by <em>cfgp</em>.</p>
+</div>
+<div class="paragraph">
+<p>The object will be returned with an extra hold (see
+<a href="nng_tls_config_hold.3tls.html"><code>nng_tls_config_hold()</code></a>)
+placed on it on behalf of the caller.
+The caller should free this hold by calling
+<a href="nng_tls_config_free.3tls.html"><code>nng_tls_config_free()</code></a> with it is done
+with the TLS configuration.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>TLS not configured on client.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>Either HTTP or TLS not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_client_alloc.3http.html">nng_http_client_alloc(3http)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_client_set_tls.3http.html">nng_http_client_set_tls(3http)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_free.3tls.html">nng_tls_config_free(3tls)</a>,
+<a href="nng_tls_config_hold.3tls.html">nng_tls_config_hold(3tls)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_client_set_tls.3http.html b/man/v1.2.4/nng_http_client_set_tls.3http.html
new file mode 100644
index 00000000..c43ff6ca
--- /dev/null
+++ b/man/v1.2.4/nng_http_client_set_tls.3http.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_client_set_tls(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_client_set_tls(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_client_set_tls - set HTTP client TLS configuration</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_client_set_tls</span><span class="tok-p">(</span><span class="tok-n">nng_http_client</span> <span class="tok-o">*</span><span class="tok-n">client</span><span class="tok-p">,</span> <span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_client_set_tls()</code> sets the TLS configuration of <em>client</em> to <em>cfg</em>.</p>
+</div>
+<div class="paragraph">
+<p>This change overwrites any previous TLS configuration.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This also invalidates any previously obtained values from
+<a href="nng_http_client_get_tls.3http.html"><code>nng_http_client_get_tls()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Any connections established with
+<a href="nng_http_client_connect.3http.html"><code>nng_http_client_connect()</code></a>
+will continue to use any TLS configuration that they were started with.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>Either HTTP or TLS not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_client_alloc.3http.html">nng_http_client_alloc(3http)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_client_get_tls.3http.html">nng_http_client_get_tls(3http)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_client_transact.3http.html b/man/v1.2.4/nng_http_client_transact.3http.html
new file mode 100644
index 00000000..5b01a7b2
--- /dev/null
+++ b/man/v1.2.4/nng_http_client_transact.3http.html
@@ -0,0 +1,205 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_client_transact(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_client_transact(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_client_transact - perform one HTTP transaction</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_client_transact</span><span class="tok-p">(</span><span class="tok-n">nng_http_client</span> <span class="tok-o">*</span><span class="tok-n">client</span><span class="tok-p">,</span> <span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span>
+ <span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_client_transact()</code> function is used to perform a complete
+HTTP exchange.
+It creates a new connection using <em>client</em>, performs the transaction by
+sending the request <em>req</em>
+(and attached body data) to the remote server, then reading the response
+<em>res</em>, and finally closes the connection that it created.
+The entire response is read, including any associated body, which can
+subsequently be obtained using
+<a href="nng_http_res_get_data.3http.html"><code>nng_http_res_get_data()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This function is intended to make creation of client applications easier,
+by performing multiple asynchronous operations required to complete an
+entire HTTP transaction.</p>
+</div>
+<div class="paragraph">
+<p>A similar function,
+<a href="nng_http_conn_transact.3http.html"><code>nng_http_conn_transact()</code></a>,
+exists.
+That function behaves similarily, but uses an existing connection, which
+can be reused.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function does not support reading data sent using chunked
+transfer encoding, and if the server attempts to do so, the underlying
+connection will be closed and an <code>NNG_ENOTSUP</code> error will be returned.
+This limitation is considered a bug, and a fix is planned for the future.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+If the remote server tries to send an extremely large buffer,
+then a corresponding allocation will be made, which can lead to denial
+of service attacks.
+Client applications should take care to use this only with reasonably
+trust-worthy servers.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final result
+may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported, or peer sent chunked encoding.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPROTO</code>
+</td>
+<td class="hdlist2">
+<p>An HTTP protocol error occurred.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_conn_transact.3http.html">nng_http_conn_transact(3http)</a>,
+<a href="nng_http_res_get_data.3http.html">nng_http_res_get_data(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_close.3http.html b/man/v1.2.4/nng_http_conn_close.3http.html
new file mode 100644
index 00000000..253e08bc
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_close.3http.html
@@ -0,0 +1,91 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_close(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_close(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_close - close HTTP connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_close</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_close()</code> function closes the supplied HTTP connection <em>conn</em>,
+including any disposing of any underlying file descriptors or related resources.</p>
+</div>
+<div class="paragraph">
+<p>Once this function, no further access to the <em>conn</em> structure may be made.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_read.3http.html b/man/v1.2.4/nng_http_conn_read.3http.html
new file mode 100644
index 00000000..b20e1f27
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_read.3http.html
@@ -0,0 +1,192 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_read(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_read(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_read - read from HTTP connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_read</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_read()</code> function starts an asynchronous read from the
+HTTP connection <em>conn</em>, into the scatter/gather vector located in the
+asynchronous I/O structure <em>aio</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a> function must have been
+called first, to set the scatter/gather vector for <em>aio</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>,
+and the final result may be obtained via
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="paragraph">
+<p>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
+<a href="nng_aio_count.3.html"><code>nng_aio_count()</code></a>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>aio</em> does not contain a valid scatter/gather vector.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_read_all.3http.html b/man/v1.2.4/nng_http_conn_read_all.3http.html
new file mode 100644
index 00000000..4a788799
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_read_all.3http.html
@@ -0,0 +1,194 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_read_all(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_read_all(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_read_all - read all from HTTP connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_read_all</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_read_all()</code> function starts an asynchronous read from the
+HTTP connection <em>conn</em>, into the scatter/gather vector located in the
+asynchronous I/O structure <em>aio</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a> function must have been
+called first, to set the scatter/gather vector for <em>aio</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final result
+may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>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
+<a href="nng_aio_count.3.html"><code>nng_aio_count()</code></a>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The main purpose for this function is to facilitate reading HTTP
+body content, after first determining the length of the body content
+from the relevant HTTP headers (typically <code>Content-Length</code>).
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>aio</em> does not contain a valid scatter/gather vector.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3)</a>,
+<a href="nng_http_conn_read.3http.html">nng_http_conn_read(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_read_req.3http.html b/man/v1.2.4/nng_http_conn_read_req.3http.html
new file mode 100644
index 00000000..439b7c4f
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_read_req.3http.html
@@ -0,0 +1,163 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_read_req(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_read_req(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_read_req - read HTTP request</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_read_req</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span>
+ <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_read_req()</code> function starts an asynchronous read from the
+HTTP connection <em>conn</em>, reading an HTTP request into the <em>req</em>, including all
+of the related headers.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Any HTTP entity/body data associated with the request is <strong>not</strong> read
+automatically.
+The caller should use
+<a href="nng_http_conn_read_all.3http.html"><code>nng_http_conn_read_all()</code></a>
+to read the entity data, based on the details of the request itself.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final result
+may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_read_res.3http.html b/man/v1.2.4/nng_http_conn_read_res.3http.html
new file mode 100644
index 00000000..aca57e4a
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_read_res.3http.html
@@ -0,0 +1,182 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_read_res(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_read_res(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_read_res - read HTTP response</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_read_res</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span>
+ <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_read_res()</code> function starts an asynchronous read from the
+HTTP connection <em>conn</em>, reading an HTTP response into the <em>res</em>, including all
+of the related headers.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Any HTTP entity/body data associated with the response is <strong>not</strong> read
+automatically.
+The caller should use
+<a href="nng_http_conn_read_all.3http.html"><code>nng_http_conn_read_all</code></a> to read the entity
+data, based on the details of the response itself.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of
+the operation is signaled via the <em>aio</em>, and the final result may be
+obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Consider using the
+<a href="nng_http_client_transact.3http.html"><code>nng_http_client_transact()</code></a> or
+<a href="nng_http_conn_transact.3http.html"><code>nng_http_conn_transact()</code></a> functions,
+which provide a simpler interface for performing a complete HTTP client
+transaction.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_client_transact.3http.html">nng_http_client_transact(3http)</a>,
+<a href="nng_http_conn_transact.3http.html">nng_http_conn_transact(3http)</a>,
+<a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_transact.3http.html b/man/v1.2.4/nng_http_conn_transact.3http.html
new file mode 100644
index 00000000..fdb3b633
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_transact.3http.html
@@ -0,0 +1,210 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_transact(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_transact(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_transact - perform one HTTP transaction on connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_transact</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span>
+ <span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_transact()</code> function is used to perform a complete
+HTTP exchange over the connection <em>conn</em>, sending the request <em>req</em>
+(and attached body data) to the remote server, and reading the response
+<em>res</em>.
+The entire response is read, including any associated body, which can
+subsequently be obtained using
+<a href="nng_http_res_get_data.3http.html"><code>nng_http_res_get_data()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This function is intended to make creation of client applications easier,
+by performing multiple asynchronous operations required to complete an
+entire HTTP transaction.</p>
+</div>
+<div class="paragraph">
+<p>If an error occurs, the caller should close <em>conn</em> with
+<a href="nng_http_conn_close.3http.html"><code>nng_http_conn_close()</code></a>, as it may not
+necessarily be usable with other transactions.</p>
+</div>
+<div class="paragraph">
+<p>A similar function,
+<a href="nng_http_client_transact.3http.html"><code>nng_http_client_transact()</code></a>,
+exists.
+That function behaves similarily, but creates a connection on demand
+for the transaction, and disposes of it when finished.</p>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+If the remote server tries to send an extremely large buffer,
+then a corresponding allocation will be made, which can lead to denial
+of service attacks.
+Client applications should take care to use this only with reasonably
+trust-worthy servers.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+A given connection <em>conn</em> should be used with only one
+operation or transaction at a time as HTTP/1.1 has no support for
+request interleaving.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final result
+may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPROTO</code>
+</td>
+<td class="hdlist2">
+<p>An HTTP protocol error occurred.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_client_transact.3http.html">nng_http_client_transact(3http)</a>,
+<a href="nng_http_conn_read_res.3http.html">nng_http_conn_read_res(3http)</a>,
+<a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all(3http)</a>,
+<a href="nng_http_conn_write_req.3http.html">nng_http_conn_write_req(3http)</a>,
+<a href="nng_http_res_get_data.3http.html">nng_http_res_get_data(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_write.3http.html b/man/v1.2.4/nng_http_conn_write.3http.html
new file mode 100644
index 00000000..ad1b12d3
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_write.3http.html
@@ -0,0 +1,191 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_write(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_write(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_write - write to HTTP connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_write</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_write()</code> function starts an asynchronous write to the
+HTTP connection <em>conn</em> from the scatter/gather vector located in the
+asynchronous I/O structure <em>aio</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a> function must have been
+called first, to set the scatter/gather vector for <em>aio</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final
+result may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="paragraph">
+<p>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
+<a href="nng_aio_count.3.html"><code>nng_aio_count()</code></a>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>aio</em> does not contain a valid scatter/gather vector.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_conn_write_all.3http.html">nng_http_conn_write_all(3http)</a>,
+<a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_write_all.3http.html b/man/v1.2.4/nng_http_conn_write_all.3http.html
new file mode 100644
index 00000000..269859d5
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_write_all.3http.html
@@ -0,0 +1,232 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_write_all(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_write_all(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_write_all - write all to HTTP connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_write_all</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_write_all()</code> function starts an asynchronous write to the
+HTTP connection <em>conn</em>, into the scatter/gather vector located in the
+asynchronous I/O structure <em>aio</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a> function must have been
+called first, to set the scatter/gather vector for <em>aio</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the
+final result may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>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
+<a href="nng_aio_count.3.html"><code>nng_aio_count()</code></a>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The main purpose for this function is to facilitate writing HTTP
+body content.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Usually an HTTP request or response will have been written immediately
+prior to this with <a href="nng_http_conn_write_req.3http.html"><code>http_conn_write_req()</code></a> or
+<a href="nng_http_conn_write_res.3http.html"><code>http_conn_write_res()</code></a>.
+In that case the request or response should have also contained
+an <code>Content-Length</code> header, and possibly a <code>Content-Type</code> header.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+An easier solution to sending HTTP content data, is to include the
+content with the request or reply using a function like
+<a href="nng_http_req_copy_data.3http.html"><code>nng_http_req_copy_data()</code></a>.
+In that case, the body data will be written automatically by the
+<a href="nng_http_conn_write_req.3http.html"><code>http_conn_write_req()</code></a> or
+<a href="nng_http_conn_write_req.3http.html"><code>http_conn_write_res()</code></a> function.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>aio</em> does not contain a valid scatter/gather vector.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_conn_write.3http.html">nng_http_conn_write(3http)</a>,
+<a href="nng_http_conn_write_req.3http.html">http_conn_write_req(3http)</a>,
+<a href="nng_http_conn_write_res.3http.html">http_conn_write_res(3http)</a>,
+<a href="nng_http_req_copy_data.3http.html">nng_http_req_copy_data(3http)</a>,
+<a href="nng_http_req_set_data.3http.html">nng_http_req_set_data(3http)</a>,
+<a href="nng_http_res_copy_data.3http.html">nng_http_res_copy_data(3http)</a>,
+<a href="nng_http_res_set_data.3http.html">nng_http_res_set_data(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_write_req.3http.html b/man/v1.2.4/nng_http_conn_write_req.3http.html
new file mode 100644
index 00000000..464b0f21
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_write_req.3http.html
@@ -0,0 +1,169 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_write_req(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_write_req(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_write_req - write HTTP request</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_write_req</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span>
+ <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_write_req()</code> function starts an asynchronous write of
+the HTTP request <em>req</em> to the connection <em>conn</em>.
+The entire request is sent,
+including headers, and if present, the request body data.
+(The request body can be set with
+<a href="nng_http_req_set_data.3http.html"><code>nng_http_req_set_data()</code></a> or
+<a href="nng_http_req_copy_data.3http.html"><code>nng_http_req_copy_data()</code></a>.)</p>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final result
+may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Consider using the
+<a href="nng_http_client_transact.3http.html"><code>nng_http_client_transact()</code></a> or
+<a href="nng_http_conn_transact.3http.html"><code>nng_http_conn_transact()</code></a> functions,
+which provide a simpler interface for performing a complete HTTP client
+transaction.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_client_transact.3http.html">nng_http_client_transact(3http)</a>,
+<a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all(3http)</a>,
+<a href="nng_http_conn_transact.3http.html">nng_http_conn_transact(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_conn_write_res.3http.html b/man/v1.2.4/nng_http_conn_write_res.3http.html
new file mode 100644
index 00000000..585376d0
--- /dev/null
+++ b/man/v1.2.4/nng_http_conn_write_res.3http.html
@@ -0,0 +1,185 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_conn_write_res(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_conn_write_res(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_persistent_connections">Persistent Connections</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_conn_write_res - write HTTP response</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_conn_write_res</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">,</span> <span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span>
+ <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_conn_write_res()</code> function starts an asynchronous write of
+the HTTP response <em>res</em> to the connection <em>conn</em>.
+The entire response is sent,
+including headers, and if present, the response body data.
+(The response body can be set with
+<a href="nng_http_res_set_data.3http.html"><code>nng_http_res_set_data()</code></a> or
+<a href="nng_http_res_copy_data.3http.html"><code>nng_http_res_copy_data()</code></a>.)</p>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final result
+may be obtained via <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="sect2">
+<h3 id="_persistent_connections">Persistent Connections</h3>
+<div class="paragraph">
+<p>By default, for <code>HTTP/1.1</code> connections, the connection is kept open, and
+will be reused to receive new requests.</p>
+</div>
+<div class="paragraph">
+<p>If however the <em>res</em> contains a header of <code>Connection:</code> with a value
+of <code>Close</code> (case-insensitive) or the response corresponds to <code>HTTP/1.0</code>,
+then the connection is immediately after sending the response.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Consider using the
+<a href="nng_http_client_transact.3http.html"><code>nng_http_client_transact()</code></a> or
+<a href="nng_http_conn_transact.3http.html"><code>nng_http_conn_transact()</code></a> functions,
+which provide a simpler interface for performing a complete HTTP client
+transaction.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP operations are not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_http_client_connect.3http.html">nng_http_client_connect(3http)</a>,
+<a href="nng_http_client_transact.3http.html">nng_http_client_transact(3http)</a>,
+<a href="nng_http_conn_read_all.3http.html">nng_http_conn_read_all(3http)</a>,
+<a href="nng_http_conn_transact.3http.html">nng_http_conn_transact(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_alloc.3http.html b/man/v1.2.4/nng_http_handler_alloc.3http.html
new file mode 100644
index 00000000..c4278b56
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_alloc.3http.html
@@ -0,0 +1,322 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_alloc(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_alloc(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_custom_handler">Custom Handler</a></li>
+<li><a href="#_directory_handler">Directory Handler</a></li>
+<li><a href="#_file_handler">File Handler</a></li>
+<li><a href="#_redirect_handler">Redirect Handler</a></li>
+<li><a href="#_static_handler">Static Handler</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_alloc - allocate HTTP server handler</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_http_handler</span> <span class="tok-n">nng_http_handler</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">**</span><span class="tok-n">hp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">,</span>
+ <span class="tok-kt">void</span> <span class="tok-p">(</span><span class="tok-o">*</span><span class="tok-n">func</span><span class="tok-p">)(</span><span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_alloc_directory</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">**</span><span class="tok-n">hp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">dirname</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_alloc_file</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">**</span><span class="tok-n">hp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">filename</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_alloc_redirect</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">**</span><span class="tok-n">hp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">,</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">status</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">location</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_alloc_static</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">**</span><span class="tok-n">hp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">content_type</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_alloc()</code> 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 <em>hp</em>.</p>
+</div>
+<div class="paragraph">
+<p>Every handler has a Request-URI to which it refers, which is determined
+by the <em>path</em> argument.
+Only the path component of the Request URI is
+considered when determining whether the handler should be called.</p>
+</div>
+<div class="paragraph">
+<p>Additionally each handler has a method it is registered to handle
+(the default is <code>GET</code>, see
+<a href="nng_http_handler_set_method.3http.html"><code>nng_http_handler_set_method()</code></a>), and
+optionally a 'Host' header it can be matched against (see
+<a href="nng_http_handler_set_host.3http.html"><code>nng_http_handler_set_host()</code></a>).</p>
+</div>
+<div class="paragraph">
+<p>In some cases, a handler may reference a logical tree rather (directory)
+rather than just a single element.
+(See <a href="nng_http_handler_set_tree.3http.html"><code>nng_http_handler_set_tree()</code></a>).</p>
+</div>
+<div class="sect2">
+<h3 id="_custom_handler">Custom Handler</h3>
+<div class="paragraph">
+<p>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 <a href="nng_aio.5.html"><code>nng_aio</code></a> structure.</p>
+</div>
+<div class="paragraph">
+<p>The <em>aio</em> will be passed with the following input values (retrieved with
+<a href="nng_aio_get_input.3.html"><code>nng_aio_get_input()</code></a>):</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1">0: <code>nng_http_req *</code> <em>request</em></dt>
+<dd>
+<p>The client&#8217;s HTTP request.</p>
+</dd>
+<dt class="hdlist1">1: <code>nng_http_handler *</code> <em>handler</em></dt>
+<dd>
+<p>Pointer to the handler object.</p>
+</dd>
+<dt class="hdlist1">2: <code>nng_http_conn *</code> <em>conn</em></dt>
+<dd>
+<p>The underlying HTTP connection.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The handler should create an <code>nng_http_res *</code> response (such as via
+<a href="nng_http_res_alloc.3http.html"><code>nng_http_res_alloc()</code></a> or
+<a href="nng_http_res_alloc_error.3http.html"><code>nng_http_res_alloc_error()</code></a>) and store that
+in as the first output (index 0) with
+<a href="nng_aio_set_output.3.html"><code>nng_aio_set_output()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>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 <em>aio</em> should be NULL.</p>
+</div>
+<div class="paragraph">
+<p>Finally, using the <a href="nng_aio_finish.3.html"><code>nng_aio_finish()</code></a> function, the
+<em>aio</em> 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.</p>
+</div>
+<div class="paragraph">
+<p>The <em>aio</em> may be scheduled for deferred completion using the
+<a href="nng_aio_defer.3.html"><code>nng_aio_defer()</code></a> function.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The callback function should <strong>NOT</strong> call
+<a href="nng_aio_begin.3.html"><code>nng_aio_begin()</code></a>,
+as that will already have been done by the server framework.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_directory_handler">Directory Handler</h3>
+<div class="paragraph">
+<p>The second member of this family, <code>nng_http_handler_alloc_directory()</code>, creates
+a handler configured to serve a directory tree.
+The <em>uri</em> is taken as the root, and files are served from the directory
+tree rooted at <em>path</em>.</p>
+</div>
+<div class="paragraph">
+<p>When the client Request-URI resolves to a directory in the file system,
+the handler looks first for a file named <code>index.html</code> or <code>index.htm</code>.
+If one is found, then that file is returned back to the client.
+If no such index file exists, then an <code>NNG_HTTP_STATUS_NOT_FOUND</code> (404) error is
+sent back to the client.</p>
+</div>
+<div class="paragraph">
+<p>The <code>Content-Type</code> will be set automatically based upon the extension
+of the requested file name.
+If a content type cannot be determined from
+the extension, then <code>application/octet-stream</code> is used.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_file_handler">File Handler</h3>
+<div class="paragraph">
+<p>The third member of this family, <code>nng_http_handler_alloc_file()</code>, creates
+a handler to serve up a single file; it does not traverse directories
+or search for <code>index.html</code> or <code>index.htm</code> files.</p>
+</div>
+<div class="paragraph">
+<p>The <code>Content-Type</code> will be set automatically based upon the extension
+of the requested file name.
+If a content type cannot be determined from
+the extension, then <code>application/octet-stream</code> is used.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_redirect_handler">Redirect Handler</h3>
+<div class="paragraph">
+<p>The fourth member is used to arrange for a server redirect from one
+URL to another.
+The reply will be with status code <em>status</em>, which should be a 3XX
+code such as 301, and a <code>Location:</code> header will contain the URL
+referenced by <em>location</em>, with any residual suffix from the request
+URI appended.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Use <a href="nng_http_handler_set_tree.3http.html"><code>nng_http_handler_set_tree()</code></a>
+to redirect an entire tree.
+For example, it is possible to redirect an entire HTTP site to another
+HTTPS site by specifying <code>/</code> as the path and then using the base
+of the new site, such as <code><a href="https://newsite.example.com" class="bare">https://newsite.example.com</a></code> as the
+new location.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Be sure to use the appropriate value for <em>status</em>.
+Permanent redirection should use 301 and temporary redirections should use 307.
+In REST APIs, using a redirection to supply the new location of an object
+created with <code>POST</code> should use 303.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_static_handler">Static Handler</h3>
+<div class="paragraph">
+<p>The fifth member of this family, <code>nng_http_handler_alloc_static()</code>, creates
+a handler to serve up fixed content located in program data.
+The client is
+sent the <em>data</em>, with <code>Content-Length</code> of <em>size</em> bytes, and <code>Content-Type</code> of
+<em>content_type</em>.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>path</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to allocate a message.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_defer.3.html">nng_aio_defer(3)</a>,
+<a href="nng_aio_finish.3.html">nng_aio_finish(3)</a>,
+<a href="nng_aio_get_input.3.html">nng_aio_get_input(3)</a>,
+<a href="nng_aio_set_output.3.html">nng_aio_set_output(3)</a>,
+<a href="nng_http_handler_collect_body.3http.html">nng_http_handler_collect_body(3http)</a>,
+<a href="nng_http_handler_free.3http.html">nng_http_handler_free(3http)</a>,
+<a href="nng_http_handler_set_host.3http.html">nng_http_handler_set_host(3http)</a>,
+<a href="nng_http_handler_set_method.3http.html">nng_http_handler_set_method(3http)</a>,
+<a href="nng_http_handler_set_tree.3http.html">nng_http_handler_set_tree(3http)</a>,
+<a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_alloc_error.3http.html">nng_http_res_alloc_error(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_collect_body.3http.html b/man/v1.2.4/nng_http_handler_collect_body.3http.html
new file mode 100644
index 00000000..2c3785a7
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_collect_body.3http.html
@@ -0,0 +1,163 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_collect_body(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_collect_body(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_collect_body - set HTTP handler to collect request body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_collect_body</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">handler</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">want</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">maxsz</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_collect_data()</code> function causes the <em>handler</em> to
+collect any request body that was submitted with the request, and attach
+it to the <code>nng_http_req</code> before the handler is called.</p>
+</div>
+<div class="paragraph">
+<p>Subsequently the data can be retrieved by the handler from the request with the
+<a href="nng_http_req_get_data.3http.html"><code>nng_http_req_get_data()</code></a> function.</p>
+</div>
+<div class="paragraph">
+<p>The collection is enabled if <em>want</em> is true.
+Furthermore, the data that the client may sent is limited by the
+value of <em>maxsz</em>.
+If the client attempts to send more data than <em>maxsz</em>, then the
+request will be terminated with a 400 &#8220;Bad Request&#8221; status.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Limiting the size of incoming request data can provide protection
+against denial of service attacks, as a buffer of the client-supplied
+size must be allocated to receive the data.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>In order to provide an unlimited size, use <code>(size_t)-1</code> for <em>maxsz</em>.
+The value <code>0</code> for <em>maxsz</em> can be used to prevent any data from being passed
+by the client.</p>
+</div>
+<div class="paragraph">
+<p>The built-in handlers for files, directories, and static data limit the
+<em>maxsz</em> to zero by default.
+Otherwise the default setting is to enable this capability with a default
+value of <em>maxsz</em> of 1 megabyte.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The handler looks for data indicated by the <code>Content-Length:</code> HTTP
+header.
+If this header is absent, the request is assumed not to contain any data.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This specifically does not support the <code>Chunked</code> transfer-encoding.
+This is considered a bug, and is a deficiency for full HTTP/1.1 compliance.
+However, few clients send data in this format, so in practice this should
+create few limitations.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng_http_req_get_data.3http.html">nng_http_req_get_data(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_free.3http.html b/man/v1.2.4/nng_http_handler_free.3http.html
new file mode 100644
index 00000000..bbd80421
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_free.3http.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_free(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_free(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_free - free HTTP server handler</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_handler_free</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">h</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_free()</code> function frees an allocated HTTP server handler.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_get_data.3http.html b/man/v1.2.4/nng_http_handler_get_data.3http.html
new file mode 100644
index 00000000..7f5fe104
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_get_data.3http.html
@@ -0,0 +1,89 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_get_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_get_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_get_data - return extra data for HTTP handler</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_handler_get_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">handler</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_get_data()</code> function returns the data previously
+stored on <em>handler</em> using the function
+<a href="nng_http_handler_set_data.3http.html"><code>nng_http_handler_set_data()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_handler_set_data.3http.html">nng_http_server_set_data(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_set_data.3http.html b/man/v1.2.4/nng_http_handler_set_data.3http.html
new file mode 100644
index 00000000..5b3a0a2a
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_set_data.3http.html
@@ -0,0 +1,114 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_set_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_set_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_set_data - set extra data for HTTP handler</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_set_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">handler</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span>
+ <span class="tok-kt">void</span> <span class="tok-p">(</span><span class="tok-o">*</span><span class="tok-n">dtor</span><span class="tok-p">)(</span><span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-p">));</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_set_data()</code> function is used to set an additional
+<em>data</em> for the <em>handler</em>.
+The stored <em>data</em> can be retrieved later in the handler function using
+<a href="nng_http_handler_get_data.3http.html"><code>nng_http_handler_get_data()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally, when the handler is deallocated, if <em>dtor</em> is not <code>NULL</code>,
+then it will be called with <em>data</em> as its argument.
+The intended use of
+this function is deallocate any resources associated with <em>data</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_handler_get_data.3http.html">nng_http_server_get_data(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_set_host.3http.html b/man/v1.2.4/nng_http_handler_set_host.3http.html
new file mode 100644
index 00000000..4daa1321
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_set_host.3http.html
@@ -0,0 +1,138 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_set_host(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_set_host(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_set_host - set host for HTTP handler</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_set_host</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">handler</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">host</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_set_host()</code> function is used to limit the scope of the
+<em>handler</em> so that it will only be called when the specified <em>host</em> matches
+the value of the <code>Host:</code> HTTP header.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This can be used to create servers with multiple handlers for virtual
+hosting.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value of the <em>host</em> can include a colon and port, and should match
+exactly the value of the <code>Host</code> header sent by the client.
+(Canonicalization of the host name is performed though.)</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_set_method.3http.html b/man/v1.2.4/nng_http_handler_set_method.3http.html
new file mode 100644
index 00000000..039f061a
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_set_method.3http.html
@@ -0,0 +1,140 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_set_method(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_set_method(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_set_method - set HTTP handler method</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_set_method</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">handler</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">method</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_set_method()</code> function sets the <em>method</em> that the
+<em>handler</em> will be called for, such as "GET" or "POST".
+(By default the "GET" method is handled.)
+If <em>method</em> is <code>NULL</code>, then the request method
+is not examined, and the handler will be executed regardless of the
+method.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+No validation of the <em>method</em> is performed, but HTTP specifications
+insist that the actual method sent over the wire be capitalized.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The handler may always examine the actual method used using the
+<a href="nng_http_req_get_method.3http.html"><code>nng_http_req_get_method()</code></a> function.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng_http_req_get_method.3http.html">nng_http_req_get_method(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_handler_set_tree.3http.html b/man/v1.2.4/nng_http_handler_set_tree.3http.html
new file mode 100644
index 00000000..2e5eb41b
--- /dev/null
+++ b/man/v1.2.4/nng_http_handler_set_tree.3http.html
@@ -0,0 +1,119 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_handler_set_tree(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_handler_set_tree(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_handler_set_tree - set HTTP handler to match trees</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_handler_set_tree</span><span class="tok-p">(</span><span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">handler</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_handler_set_tree()</code> function causes the <em>handler</em> to be
+matched if the Request URI sent by the client is a logical child of
+the path for <em>handler</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This method is useful when constructing API handlers where a single
+service address (path) supports dynamically generated children.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng_http_req_get_method.3http.html">nng_http_req_get_method(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_hijack.3http.html b/man/v1.2.4/nng_http_hijack.3http.html
new file mode 100644
index 00000000..ca2e813c
--- /dev/null
+++ b/man/v1.2.4/nng_http_hijack.3http.html
@@ -0,0 +1,153 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_hijack(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_hijack(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_hijack - hijack HTTP server connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_hijack</span><span class="tok-p">(</span><span class="tok-n">nng_http_conn</span> <span class="tok-o">*</span><span class="tok-n">conn</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_http_hijack()</code> function hijacks the connection <em>conn</em>, causing it
+to be disassociated from the HTTP server where it was created.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>This function is most useful when called from a handler function.
+(See <a href="nng_http_handler_alloc.3http.html"><code>nng_http_handler_alloc()</code></a>.)</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_http_conn_write_res.3http.html"><code>nng_http_conn_write_res()</code></a>.)
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_http_conn_write_res.3http.html">nng_http_conn_write_res(3http)</a>,
+<a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_add_header.3http.html b/man/v1.2.4/nng_http_req_add_header.3http.html
new file mode 100644
index 00000000..e597d826
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_add_header.3http.html
@@ -0,0 +1,146 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_add_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_add_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_add_header - add HTTP request header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_add_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_add_header()</code> adds an HTTP header for the request
+<em>req</em> and the <em>key</em> to the <em>val</em>. The <em>key</em> and <em>val</em> are copied.</p>
+</div>
+<div class="paragraph">
+<p>If a header with the value of <em>key</em> already exists, then a comma
+and whitespace separate are appended to it, followed by <em>val</em>.</p>
+</div>
+<div class="paragraph">
+<p>If no such header already exists, then one is created with the value <em>val</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The HTTP specification requires that duplicate headers be treated
+identically to a single header with multiple comma-delimited values.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+See <a href="nng_http_req_set_header.3http.html"><code>nng_http_req_set_header()</code></a> if
+replacement of an existing header rather than appending to it is desired.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header.
+For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> is not a legal header key.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_del_header.3http.html">nng_http_req_del_header(3http)</a>,
+<a href="nng_http_req_get_header.3http.html">nng_http_req_get_header(3http)</a>,
+<a href="nng_http_req_set_header.3http.html">nng_http_req_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_alloc.3http.html b/man/v1.2.4/nng_http_req_alloc.3http.html
new file mode 100644
index 00000000..79210fed
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_alloc.3http.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_alloc(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_alloc(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_alloc - allocate HTTP request structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">**</span><span class="tok-n">reqp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_alloc()</code> function allocates a new HTTP request structure
+and stores a pointer to it in <em>reqp</em>.
+The request will be initialized
+to perform an HTTP/1.1 <code>GET</code> operation using the URL specified in <em>url</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is possible to specify <code>NULL</code> for the URL.
+In this case the URI for the request must be specified by a subsequent call
+to <a href="nng_http_req_set_uri.3http.html"><code>nng_http_req_set_uri()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to allocate a message.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP support not configured.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_conn_read_req.3http.html">nng_http_conn_read_req(3http)</a>,
+<a href="nng_http_conn_write_req.3http.html">nng_http_conn_write_req(3http)</a>,
+<a href="nng_http_req_add_header.3http.html">nng_http_req_add_header(3http)</a>,
+<a href="nng_http_req_copy_data.3http.html">nng_http_req_copy_data(3http)</a>,
+<a href="nng_http_req_del_header.3http.html">nng_http_req_del_header(3http)</a>,
+<a href="nng_http_req_free.3http.html">nng_http_req_free(3http)</a>,
+<a href="nng_http_req_get_header.3http.html">nng_http_req_get_header(3http)</a>,
+<a href="nng_http_req_get_method.3http.html">nng_http_req_get_method(3http)</a>,
+<a href="nng_http_req_get_uri.3http.html">nng_http_req_get_uri(3http)</a>,
+<a href="nng_http_req_get_version.3http.html">nng_http_req_get_version(3http)</a>,
+<a href="nng_http_req_reset.3http.html">nng_http_req_reset(3http)</a>,
+<a href="nng_http_req_set_data.3http.html">nng_http_req_set_data(3http)</a>,
+<a href="nng_http_req_set_method.3http.html">nng_http_req_set_method(3http)</a>,
+<a href="nng_http_req_set_uri.3http.html">nng_http_req_set_uri(3http)</a>,
+<a href="nng_http_req_set_version.3http.html">nng_http_req_set_version(3http)</a>,
+<a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_url_parse.3.html">nng_url_parse(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_copy_data.3http.html b/man/v1.2.4/nng_http_req_copy_data.3http.html
new file mode 100644
index 00000000..84550b6e
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_copy_data.3http.html
@@ -0,0 +1,152 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_copy_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_copy_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_copy_data - copy HTTP request body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_copy_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">body</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_copy_data()</code> makes a copy of <em>body</em> (of size <em>size</em>)
+and sets the HTTP body for the request <em>req</em> to it.
+The copy will be deallocated automatically when <em>req</em> is freed.</p>
+</div>
+<div class="paragraph">
+<p>The copied body data will be automatically sent with the request when it
+is sent using <a href="nng_http_conn_write_req.3http.html"><code>nng_http_conn_write_req()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This also updates the relevant <code>Content-Length</code> header of <em>req</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The current framework does not support sending data via chunked
+transfer-encoding.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+To avoid copying data, the
+<a href="nng_http_req_set_data.3http.html"><code>nng_http_req_set_data()</code></a> may be used instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is a good idea to also set the <code>Content-Type</code> header.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_conn_write_req.3http.html">nng_http_conn_write_req(3http)</a>,
+<a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_set_data.3http.html">nng_http_req_set_data(3http)</a>,
+<a href="nng_http_req_set_header.3http.html">nng_http_req_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_del_header.3http.html b/man/v1.2.4/nng_http_req_del_header.3http.html
new file mode 100644
index 00000000..a36ea076
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_del_header.3http.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_set_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_set_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_del_header - delete HTTP request header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_del_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_del_header()</code> removes all HTTP headers with the
+associated <em>key</em> from the request structure <em>req</em>.</p>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header.
+For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> is not a legal header key.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOENT</code>
+</td>
+<td class="hdlist2">
+<p>No header with the key <em>key</em> was present.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_add_header.3http.html">nng_http_req_add_header(3http)</a>,
+<a href="#">nng_http_req_del_header(3http)</a>,
+<a href="nng_http_req_get_header.3http.html">nng_http_req_get_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_free.3http.html b/man/v1.2.4/nng_http_req_free.3http.html
new file mode 100644
index 00000000..7a2900af
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_free.3http.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_free(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_free(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_free - free HTTP request structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_req_free</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_free()</code> function deallocates the HTTP request structure
+<em>req</em> entirely.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Instead of freeing and reallocating request structures, it is possible
+to reuse <em>req</em> with <a href="nng_http_req_reset.3http.html"><code>nng_http_req_reset()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_reset.3http.html">nng_http_req_reset(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_get_data.3http.html b/man/v1.2.4/nng_http_req_get_data.3http.html
new file mode 100644
index 00000000..e21c64b1
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_get_data.3http.html
@@ -0,0 +1,103 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_get_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_get_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_get_data - get HTTP request body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_req_get_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">bodyp</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">sizep</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_get_data()</code> gets the HTTP body associated with
+the request <em>req</em>, storing a pointer to the buffer at the location referenced
+by <em>bodyp</em>, and the length of the associated buffer at the location referenced
+by <em>sizep</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The buffer returned is owned by <em>req</em>, and will automatically freed
+when the request is freed.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_set_data.3http.html">nng_http_req_copy_data(3http)</a>,
+<a href="nng_http_req_copy_data.3http.html">nng_http_req_copy_data(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_get_header.3http.html b/man/v1.2.4/nng_http_req_get_header.3http.html
new file mode 100644
index 00000000..e408bbc3
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_get_header.3http.html
@@ -0,0 +1,95 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_get_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_get_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_get_header - return HTTP request header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_req_get_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_get_header()</code> looks for an HTTP header <em>key</em> in
+the request <em>req</em>, and returns the associated value if found,
+or <code>NULL</code> if not found.</p>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header.
+For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> will not find anything.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>HTTP header value for <em>key</em>, if it exists, or NULL otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_add_header.3http.html">nng_http_req_add_header(3http)</a>,
+<a href="nng_http_req_set_header.3http.html">nng_http_req_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_get_method.3http.html b/man/v1.2.4/nng_http_req_get_method.3http.html
new file mode 100644
index 00000000..7153fb04
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_get_method.3http.html
@@ -0,0 +1,88 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_get_method(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_get_method(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_get_method - return HTTP request method</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_req_get_method</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_get_method()</code> returns the HTTP method associated with
+the request <em>req</em>.
+The value will be a string, such as "GET" or "POST".</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Request method as a string.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_set_method.3http.html">nng_http_req_set_method(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_get_uri.3http.html b/man/v1.2.4/nng_http_req_get_uri.3http.html
new file mode 100644
index 00000000..5e302274
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_get_uri.3http.html
@@ -0,0 +1,90 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_get_method(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_get_method(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_get_uri - return HTTP request URI</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_req_get_uri</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_get_uri()</code> returns the URI (path) associated with the HTTP
+request <em>req</em>.
+The value returned includes the path, as well as any query information or
+fragment. The value will look like a file system path
+with those optional components appended, such as <code>/api/get_info.cgi?name=garrett</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Request URI as a string.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_set_uri.3http.html">nng_http_req_set_uri(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_get_version.3http.html b/man/v1.2.4/nng_http_req_get_version.3http.html
new file mode 100644
index 00000000..66a28a7d
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_get_version.3http.html
@@ -0,0 +1,87 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_get_version(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_get_version(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_get_version - return HTTP request protocol version</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_req_get_version</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_get_version()</code> returns a string representing the HTTP
+protocol version associated with the request <em>req</em>, such as "HTTP/1.1".</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Request version as a string.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_set_version.3http.html">nng_http_req_set_version(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_reset.3http.html b/man/v1.2.4/nng_http_req_reset.3http.html
new file mode 100644
index 00000000..d6375c3e
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_reset.3http.html
@@ -0,0 +1,101 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_reset(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_reset(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_reset - reset HTTP request structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_req_reset</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_reset()</code> function resets the request <em>req</em> so that it
+is just as if it had been freshly allocated with
+<a href="nng_http_req_alloc.3http.html"><code>nng_http_req_alloc()</code></a> with a <code>NULL</code> URL.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Before using this with an HTTP operation, the URI must be set using
+<a href="nng_http_req_set_uri.3http.html"><code>nng_http_req_set_uri()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_set_uri.3http.html">nng_http_req_set_uri(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_set_data.3http.html b/man/v1.2.4/nng_http_req_set_data.3http.html
new file mode 100644
index 00000000..6ebd7ee1
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_set_data.3http.html
@@ -0,0 +1,154 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_set_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_set_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_set_data - set HTTP request body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_set_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">body</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_set_data()</code> sets the HTTP body associated with
+the request <em>req</em> to <em>body</em>, and the size of the body to <em>size</em>.
+This body data will be automatically sent with the request when it
+is sent using <a href="nng_http_conn_write_req.3http.html"><code>nng_http_conn_write_req()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This also updates the relevant <code>Content-Length</code> header of <em>req</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The current framework does not support sending data via chunked
+transfer-encoding.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>body</em> is <strong>not</strong> copied, and the caller must ensure that it is available
+until the <em>req</em> is deallocated.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+To have a local copy allocated with <em>req</em> that will be automatically
+deallocated when <em>req</em> is freed,
+see <a href="nng_http_req_copy_data.3http.html"><code>nng_http_req_copy_data()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is a good idea to also set the <code>Content-Type</code> header.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_conn_write_req.3http.html">nng_http_conn_write_req(3http)</a>,
+<a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_copy_data.3http.html">nng_http_req_copy_data(3http)</a>,
+<a href="nng_http_req_set_header.3http.html">nng_http_req_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_set_header.3http.html b/man/v1.2.4/nng_http_req_set_header.3http.html
new file mode 100644
index 00000000..83c9597d
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_set_header.3http.html
@@ -0,0 +1,128 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_set_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_set_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_set_header - set HTTP request header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_set_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_set_header()</code> sets the HTTP header for the request
+<em>req</em> and the <em>key</em> to the <em>val</em>.
+The <em>key</em> and <em>val</em> are copied.
+Any previous header with the same <em>key</em> is replaced.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+See <a href="nng_http_req_add_header.3http.html"><code>nng_http_req_add_header()</code></a> to
+add additional headers with the same <em>key</em> without replacing them.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header.
+For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> is not a legal header key.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_add_header.3http.html">nng_http_req_add_header(3http)</a>,
+<a href="nng_http_req_del_header.3http.html">nng_http_req_del_header(3http)</a>,
+<a href="nng_http_req_get_header.3http.html">nng_http_req_get_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_set_method.3http.html b/man/v1.2.4/nng_http_req_set_method.3http.html
new file mode 100644
index 00000000..2d50fca3
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_set_method.3http.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_set_method(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_set_method(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_set_method - set HTTP request method</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_set_method</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">method</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_set_method()</code> sets the HTTP method associated with
+the request <em>req</em> to <em>method</em>. The <em>method</em> must be a string,
+such as "GET" or "POST", and the HTTP specifications indicate that it must
+be upper case.</p>
+</div>
+<div class="paragraph">
+<p>The default value method for newly allocated requests is "GET".</p>
+</div>
+<div class="paragraph">
+<p>A local copy of the <em>method</em> is made in the request <em>req</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_get_method.3http.html">nng_http_req_get_method(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_set_uri.3http.html b/man/v1.2.4/nng_http_req_set_uri.3http.html
new file mode 100644
index 00000000..a6fa82a9
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_set_uri.3http.html
@@ -0,0 +1,138 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_set_uri(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_set_uri(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_set_uri - set HTTP request URI</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_set_uri</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">uri</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_set_uri()</code> sets the Request-URI associated with
+the request <em>req</em> to <em>uri</em>.
+The <em>uri</em> should contain precisely the
+string that will be sent to the HTTP server in the request, including
+any query information or fragment.</p>
+</div>
+<div class="paragraph">
+<p>A local copy of the <em>uri</em> is made in the request <em>req</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+No validation or canonicalization of the <em>uri</em> is performed.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <a href="nng_url_parse.3.html"><code>nng_url_parse()</code></a> function can be used to
+perform validation and canonicalization.
+The <code>u_requri</code> member will
+contain a suitable value that can be used with this function.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_get_uri.3http.html">nng_http_req_get_uri(3http)</a>,
+<a href="nng_url_parse.3.html">nng_url_parse(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_req_set_version.3http.html b/man/v1.2.4/nng_http_req_set_version.3http.html
new file mode 100644
index 00000000..48da1bfe
--- /dev/null
+++ b/man/v1.2.4/nng_http_req_set_version.3http.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_req_set_version(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_req_set_version(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_req_set_version - set HTTP request protocol version</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_req_set_version</span><span class="tok-p">(</span><span class="tok-n">nng_http_req</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">version</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_req_set_version()</code> sets the HTTP protocol version associated with
+the request <em>req</em> to <em>version</em>.
+The <em>version</em> must be a string containing
+a valid HTTP protocol version, such as "HTTP/1.0".
+The default value is "HTTP/1.1".</p>
+</div>
+<div class="paragraph">
+<p>A local copy of the <em>version</em> is made in the request <em>req</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+No validation of the version supplied is performed.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_req_get_version.3http.html">nng_http_req_get_version(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_add_header.3http.html b/man/v1.2.4/nng_http_res_add_header.3http.html
new file mode 100644
index 00000000..ce53a21c
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_add_header.3http.html
@@ -0,0 +1,146 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_add_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_add_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_add_header - add HTTP response header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_add_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_add_header()</code> adds an HTTP header for the response
+<em>res</em> and the <em>key</em> to the <em>val</em>.
+The <em>key</em> and <em>val</em> are copied.</p>
+</div>
+<div class="paragraph">
+<p>If a header with the value of <em>key</em> already exists, then a comma
+and whitespace separate are appended to it, followed by <em>val</em>.</p>
+</div>
+<div class="paragraph">
+<p>If no such header already exists, then one is created with the value <em>val</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The HTTP specification requires that duplicate headers be treated
+identically to a single header with multiple comma-delimited values.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+See <a href="nng_http_res_set_header.3http.html"><code>nng_http_res_set_header()</code></a> if
+replacement of an existing header rather than appending to it is desired.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header. For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> is not a legal header key.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_del_header.3http.html">nng_http_res_del_header(3http)</a>,
+<a href="nng_http_res_get_header.3http.html">nng_http_res_get_header(3http)</a>,
+<a href="nng_http_res_set_header.3http.html">nng_http_res_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_alloc.3http.html b/man/v1.2.4/nng_http_res_alloc.3http.html
new file mode 100644
index 00000000..d2378a22
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_alloc.3http.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_alloc(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_alloc(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_alloc - allocate HTTP response structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">**</span><span class="tok-n">resp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_alloc()</code> function allocates a new HTTP response structure
+and stores a pointer to it in <em>resp</em>.
+The response will be initialized
+with status code 200 (<code>NNG_HTTP_STATUS_OK</code>), and a reason phrase of `"OK`",
+and HTTP protocol version `"HTTP/1.1`".</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+When an error response is needed, consider using
+<a href="nng_http_res_alloc_error.3http.html"><code>nng_http_res_alloc_error()</code></a> instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to allocate a message.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP support not configured.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_conn_read_res.3http.html">nng_http_conn_read_res(3http)</a>,
+<a href="nng_http_conn_write_res.3http.html">nng_http_conn_write_res(3http)</a>,
+<a href="nng_http_req_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_res_alloc_error.3http.html">nng_http_res_alloc_error(3http)</a>,
+<a href="nng_http_res_add_header.3http.html">nng_http_res_add_header(3http)</a>,
+<a href="nng_http_res_copy_data.3http.html">nng_http_res_copy_data(3http)</a>,
+<a href="nng_http_res_del_header.3http.html">nng_http_res_del_header(3http)</a>,
+<a href="nng_http_res_free.3http.html">nng_http_res_free(3http)</a>,
+<a href="nng_http_res_get_header.3http.html">nng_http_res_get_header(3http)</a>,
+<a href="nng_http_res_get_reason.3http.html">nng_http_res_get_reason(3http)</a>,
+<a href="nng_http_res_get_status.3http.html">nng_http_res_get_status(3http)</a>,
+<a href="nng_http_res_get_version.3http.html">nng_http_res_get_version(3http)</a>,
+<a href="nng_http_res_reset.3http.html">nng_http_res_reset(3http)</a>,
+<a href="nng_http_res_set_data.3http.html">nng_http_res_set_data(3http)</a>,
+<a href="nng_http_res_set_reason.3http.html">nng_http_res_set_reason(3http)</a>,
+<a href="nng_http_res_set_status.3http.html">nng_http_res_set_status(3http)</a>,
+<a href="nng_http_res_set_version.3http.html">nng_http_res_set_version(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_alloc_error.3http.html b/man/v1.2.4/nng_http_res_alloc_error.3http.html
new file mode 100644
index 00000000..9d80a19f
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_alloc_error.3http.html
@@ -0,0 +1,126 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_alloc_error(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_alloc_error(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_alloc_error - allocate HTTP error response</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_alloc_error</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">**</span><span class="tok-n">resp</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-n">status</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_alloc_error()</code> function allocates a new HTTP response structure
+and stores a pointer to it in <em>resp</em>.
+The response will be initialized
+with the status code <em>status</em>, 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 <code>Content-Type</code>
+and <code>Content-Length</code>.)
+The HTTP protocol version is also set to "HTTP/1.1".</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This is the simplest way to generate an error response.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to allocate a message.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP support not configured.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_free.3http.html">nng_http_res_free(3http)</a>,
+<a href="nng_http_res_set_reason.3http.html">nng_http_res_set_reason(3http)</a>,
+<a href="nng_http_res_set_status.3http.html">nng_http_res_set_status(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_copy_data.3http.html b/man/v1.2.4/nng_http_res_copy_data.3http.html
new file mode 100644
index 00000000..4054ea98
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_copy_data.3http.html
@@ -0,0 +1,152 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_copy_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_copy_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_copy_data - copy HTTP response body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_copy_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">body</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_copy_data()</code> makes a copy of <em>body</em> (of size <em>size</em>)
+and sets the HTTP body for the response <em>res</em> to it.
+The copy will be deallocated automatically when <em>res</em> is freed.</p>
+</div>
+<div class="paragraph">
+<p>The copied body data will be automatically sent with the response when it
+is sent using <a href="nng_http_conn_write_res.3http.html"><code>nng_http_conn_write_res()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This also updates the relevant <code>Content-Length</code> header of <em>res</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The current framework does not support sending data via chunked
+transfer-encoding.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+To avoid copying data, the
+<a href="nng_http_res_set_data.3http.html"><code>nng_http_res_set_data()</code></a> may be used instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is a good idea to also set the <code>Content-Type</code> header.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_conn_write_res.3http.html">nng_http_conn_write_res(3http)</a>,
+<a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_set_data.3http.html">nng_http_res_set_data(3http)</a>,
+<a href="nng_http_res_set_header.3http.html">nng_http_res_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_del_header.3http.html b/man/v1.2.4/nng_http_res_del_header.3http.html
new file mode 100644
index 00000000..7daca58f
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_del_header.3http.html
@@ -0,0 +1,111 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_set_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_set_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_set_header - set HTTP response header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_set_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_del_header()</code> removes all HTTP headers with the
+associated <em>key</em> from the response structure <em>res</em>.</p>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header. For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> is not a legal header key.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOENT</code>
+</td>
+<td class="hdlist2">
+<p>No header with the key <em>key</em> was present.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_add_header.3http.html">nng_http_res_add_header(3http)</a>,
+<a href="#">nng_http_res_del_header(3http)</a>,
+<a href="nng_http_res_get_header.3http.html">nng_http_res_get_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_free.3http.html b/man/v1.2.4/nng_http_res_free.3http.html
new file mode 100644
index 00000000..cf4b8a1e
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_free.3http.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_free(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_free(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_free - free HTTP response structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_res_free</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">req</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_free()</code> function deallocates the HTTP response structure
+<em>res</em> entirely.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Instead of freeing and reallocating response structures, it is possible
+to reuse <em>res</em> with <a href="nng_http_res_reset.3http.html"><code>nng_http_res_reset()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_reset.3http.html">nng_http_res_reset(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_get_data.3http.html b/man/v1.2.4/nng_http_res_get_data.3http.html
new file mode 100644
index 00000000..c3dd489d
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_get_data.3http.html
@@ -0,0 +1,103 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_get_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_get_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_get_data - get HTTP response body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_res_get_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">bodyp</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">sizep</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_get_data()</code> gets the HTTP body associated with
+the request <em>res</em>, storing a pointer to the buffer at the location referenced
+by <em>bodyp</em>, and the length of the associated buffer at the location referenced
+by <em>sizep</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The buffer returned is owned by <em>res</em>, and will automatically freed
+when the request is freed.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_req_alloc(3http)</a>,
+<a href="nng_http_res_set_data.3http.html">nng_http_req_copy_data(3http)</a>,
+<a href="nng_http_res_copy_data.3http.html">nng_http_req_copy_data(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_get_header.3http.html b/man/v1.2.4/nng_http_res_get_header.3http.html
new file mode 100644
index 00000000..ec2628c9
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_get_header.3http.html
@@ -0,0 +1,95 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_get_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_get_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_get_header - return HTTP response header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_res_get_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_get_header()</code> looks for an HTTP header <em>key</em> in
+the response <em>res</em>, and returns the associated value if found,
+or <code>NULL</code> if not found.</p>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header.
+For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> will not find anything.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>HTTP header value for <em>key</em>, if it exists, or NULL otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_add_header.3http.html">nng_http_res_add_header(3http)</a>,
+<a href="nng_http_res_set_header.3http.html">nng_http_res_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_get_reason.3http.html b/man/v1.2.4/nng_http_res_get_reason.3http.html
new file mode 100644
index 00000000..0a6dab29
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_get_reason.3http.html
@@ -0,0 +1,91 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_get_reason(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_get_reason(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_get_reason - return HTTP response reason</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_res_get_reason</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_get_reason()</code> returns a string representing the
+&#8220;reason phrase&#8221; associated with the response <em>res</em>.
+This is a human-readable explanation of the status code that
+would be obtained from
+<a href="nng_http_res_get_status.3http.html"><code>nng_http_res_get_status()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Reason as a string.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_get_status.3http.html">nng_http_res_get_status(3http)</a>,
+<a href="nng_http_res_set_reason.3http.html">nng_http_res_set_reason(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_get_status.3http.html b/man/v1.2.4/nng_http_res_get_status.3http.html
new file mode 100644
index 00000000..e65c9758
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_get_status.3http.html
@@ -0,0 +1,171 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_get_status(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_get_status(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_get_status - return HTTP status code</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">uint16_t</span> <span class="tok-nf">nng_http_res_get_status</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_get_status()</code> returns a numeric code corresponding to
+the HTTP status of the response <em>res</em>.</p>
+</div>
+<div class="paragraph">
+<p>For convenience, a number of predefined symbols corresponding to well-known
+HTTP status codes are available.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-k">enum</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_HTTP_STATUS_CONTINUE</span> <span class="tok-o">=</span> <span class="tok-mi">100</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_SWITCHING</span> <span class="tok-o">=</span> <span class="tok-mi">101</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PROCESSING</span> <span class="tok-o">=</span> <span class="tok-mi">102</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_OK</span> <span class="tok-o">=</span> <span class="tok-mi">200</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_CREATED</span> <span class="tok-o">=</span> <span class="tok-mi">201</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_ACCEPTED</span> <span class="tok-o">=</span> <span class="tok-mi">202</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_AUTHORITATIVE</span> <span class="tok-o">=</span> <span class="tok-mi">203</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NO_CONTENT</span> <span class="tok-o">=</span> <span class="tok-mi">204</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_RESET_CONTENT</span> <span class="tok-o">=</span> <span class="tok-mi">205</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PARTIAL_CONTENT</span> <span class="tok-o">=</span> <span class="tok-mi">206</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_MULTI_STATUS</span> <span class="tok-o">=</span> <span class="tok-mi">207</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_ALREADY_REPORTED</span> <span class="tok-o">=</span> <span class="tok-mi">208</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_IM_USED</span> <span class="tok-o">=</span> <span class="tok-mi">226</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_MULTIPLE_CHOICES</span> <span class="tok-o">=</span> <span class="tok-mi">300</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_STATUS_MOVED_PERMANENTLY</span> <span class="tok-o">=</span> <span class="tok-mi">301</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_FOUND</span> <span class="tok-o">=</span> <span class="tok-mi">302</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_SEE_OTHER</span> <span class="tok-o">=</span> <span class="tok-mi">303</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_MODIFIED</span> <span class="tok-o">=</span> <span class="tok-mi">304</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_USE_PROXY</span> <span class="tok-o">=</span> <span class="tok-mi">305</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_TEMPORARY_REDIRECT</span> <span class="tok-o">=</span> <span class="tok-mi">307</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PERMANENT_REDIRECT</span> <span class="tok-o">=</span> <span class="tok-mi">308</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_BAD_REQUEST</span> <span class="tok-o">=</span> <span class="tok-mi">400</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNAUTHORIZED</span> <span class="tok-o">=</span> <span class="tok-mi">401</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PAYMENT_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">402</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_FORBIDDEN</span> <span class="tok-o">=</span> <span class="tok-mi">403</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_FOUND</span> <span class="tok-o">=</span> <span class="tok-mi">404</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_METHOD_NOT_ALLOWED</span> <span class="tok-o">=</span> <span class="tok-mi">405</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_ACCEPTABLE</span> <span class="tok-o">=</span> <span class="tok-mi">406</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PROXY_AUTH_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">407</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_REQUEST_TIMEOUT</span> <span class="tok-o">=</span> <span class="tok-mi">408</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_CONFLICT</span> <span class="tok-o">=</span> <span class="tok-mi">409</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_GONE</span> <span class="tok-o">=</span> <span class="tok-mi">410</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_LENGTH_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">411</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PRECONDITION_FAILED</span> <span class="tok-o">=</span> <span class="tok-mi">412</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PAYLOAD_TOO_LARGE</span> <span class="tok-o">=</span> <span class="tok-mi">413</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_ENTITY_TOO_LONG</span> <span class="tok-o">=</span> <span class="tok-mi">414</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE</span> <span class="tok-o">=</span> <span class="tok-mi">415</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_RANGE_NOT_SATISFIABLE</span> <span class="tok-o">=</span> <span class="tok-mi">416</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_EXPECTATION_FAILED</span> <span class="tok-o">=</span> <span class="tok-mi">417</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_TEAPOT</span> <span class="tok-o">=</span> <span class="tok-mi">418</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNPROCESSABLE_ENTITY</span> <span class="tok-o">=</span> <span class="tok-mi">422</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_LOCKED</span> <span class="tok-o">=</span> <span class="tok-mi">423</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_FAILED_DEPENDENCY</span> <span class="tok-o">=</span> <span class="tok-mi">424</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UPGRADE_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">426</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PRECONDITION_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">428</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_TOO_MANY_REQUESTS</span> <span class="tok-o">=</span> <span class="tok-mi">429</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_HEADERS_TOO_LARGE</span> <span class="tok-o">=</span> <span class="tok-mi">431</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNAVAIL_LEGAL_REASONS</span> <span class="tok-o">=</span> <span class="tok-mi">451</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_INTERNAL_SERVER_ERROR</span> <span class="tok-o">=</span> <span class="tok-mi">500</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_IMPLEMENTED</span> <span class="tok-o">=</span> <span class="tok-mi">501</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_BAD_GATEWAY</span> <span class="tok-o">=</span> <span class="tok-mi">502</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_SERVICE_UNAVAILABLE</span> <span class="tok-o">=</span> <span class="tok-mi">503</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_GATEWAY_TIMEOUT</span> <span class="tok-o">=</span> <span class="tok-mi">504</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_HTTP_VERSION_NOT_SUPP</span> <span class="tok-o">=</span> <span class="tok-mi">505</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_VARIANT_ALSO_NEGOTIATES</span> <span class="tok-o">=</span> <span class="tok-mi">506</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_INSUFFICIENT_STORAGE</span> <span class="tok-o">=</span> <span class="tok-mi">507</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_LOOP_DETECTED</span> <span class="tok-o">=</span> <span class="tok-mi">508</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_EXTENDED</span> <span class="tok-o">=</span> <span class="tok-mi">510</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NETWORK_AUTH_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">511</span><span class="tok-p">,</span>
+<span class="tok-p">}</span></code></pre>
+</div>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+When displaying status information to users (or logging such information),
+consider also including the &#8220;reason phrase&#8221; obtained with
+<a href="nng_http_res_get_reason.3http.html"><code>nng_http_res_get_reason()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>HTTP status code.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_get_reason.3http.html">nng_http_res_get_reason(3http)</a>,
+<a href="nng_http_res_set_status.3http.html">nng_http_res_set_status(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_get_version.3http.html b/man/v1.2.4/nng_http_res_get_version.3http.html
new file mode 100644
index 00000000..7ee3a6b9
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_get_version.3http.html
@@ -0,0 +1,87 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_get_version(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_get_version(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_get_version - return HTTP response protocol version</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_http_res_get_version</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_get_version()</code> returns a string representing the HTTP
+protocol version associated with the request <em>res</em>, such as "HTTP/1.1".</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Response version as a string.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_set_version.3http.html">nng_http_res_set_version(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_reset.3http.html b/man/v1.2.4/nng_http_res_reset.3http.html
new file mode 100644
index 00000000..c3c496ff
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_reset.3http.html
@@ -0,0 +1,87 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_reset(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_reset(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_reset - reset HTTP response structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_res_reset</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_reset()</code> function resets the response <em>res</em> so that it
+is just as if it had been freshly allocated with
+<a href="nng_http_res_alloc.3http.html"><code>nng_http_res_alloc()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_set_data.3http.html b/man/v1.2.4/nng_http_res_set_data.3http.html
new file mode 100644
index 00000000..3e0639f6
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_set_data.3http.html
@@ -0,0 +1,154 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_set_data(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_set_data(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_set_data - set HTTP response body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_set_data</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">body</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_set_data()</code> sets the HTTP body associated with
+the response <em>res</em> to <em>body</em>, and the size of the body to <em>size</em>.
+This body data will be automatically sent with the response when it
+is sent using <a href="nng_http_conn_write_res.3http.html"><code>nng_http_conn_write_res()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This also updates the relevant <code>Content-Length</code> header of <em>res</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The current framework does not support sending data via chunked
+transfer-encoding.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>body</em> is <strong>not</strong> copied, and the caller must ensure that it is available
+until the <em>res</em> is deallocated.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+To have a local copy allocated with <em>res</em> that will be automatically
+deallocated when <em>res</em> is freed,
+see <a href="nng_http_res_copy_data.3http.html"><code>nng_http_res_copy_data()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is a good idea to also set the <code>Content-Type</code> header.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_conn_write_res.3http.html">nng_http_conn_write_res(3http)</a>,
+<a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_copy_data.3http.html">nng_http_res_copy_data(3http)</a>,
+<a href="nng_http_res_set_header.3http.html">nng_http_res_set_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_set_header.3http.html b/man/v1.2.4/nng_http_res_set_header.3http.html
new file mode 100644
index 00000000..52692356
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_set_header.3http.html
@@ -0,0 +1,128 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_set_header(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_set_header(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_set_header - set HTTP response header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_set_header</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_set_header()</code> sets the HTTP header for the response
+<em>res</em> and the <em>key</em> to the <em>val</em>.
+The <em>key</em> and <em>val</em> are copied.
+Any previous header with the same <em>key</em> is replaced.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+See <a href="nng_http_res_add_header.3http.html"><code>nng_http_res_add_header()</code></a> to
+add additional headers with the same <em>key</em> without replacing them.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The value of <em>key</em> is case insensitive, and should not include the final
+colon in an HTTP header.
+For example, specifying <code>Host</code> or <code>hOSt</code> are
+equivalent, whereas the value <code>Host:</code> is not a legal header key.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_add_header.3http.html">nng_http_res_add_header(3http)</a>,
+<a href="nng_http_res_del_header.3http.html">nng_http_res_del_header(3http)</a>,
+<a href="nng_http_res_get_header.3http.html">nng_http_res_get_header(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_set_reason.3http.html b/man/v1.2.4/nng_http_res_set_reason.3http.html
new file mode 100644
index 00000000..34f6e567
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_set_reason.3http.html
@@ -0,0 +1,126 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_set_reason(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_set_reason(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_set_reason - set HTTP response reason</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_set_reason</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">reason</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_set_reason()</code> sets the human readable &#8220;reason phrase&#8221;
+associated with the response <em>res</em> to <em>reason</em>.</p>
+</div>
+<div class="paragraph">
+<p>If the value of <em>reason</em> is <code>NULL</code> (the default), then a default reason
+phrase is supplied based upon the value of the status code (see
+<a href="nng_http_res_set_status.3http.html"><code>nng_http_res_set_status()</code></a>).</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <em>reason</em> is never parsed automatically, but it can be a hint for humans
+ to help them understand the nature of any erroneous result.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>A local copy of the <em>reason</em> is made in the response <em>res</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_get_reason.3http.html">nng_http_req_get_reason(3http)</a>,
+<a href="nng_http_res_set_status.3http.html">nng_http_req_set_status(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_set_status.3http.html b/man/v1.2.4/nng_http_res_set_status.3http.html
new file mode 100644
index 00000000..8f32e8d5
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_set_status.3http.html
@@ -0,0 +1,188 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_set_status(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_set_status(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_set_status - set HTTP response status</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_set_status</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-n">status</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_set_status()</code> sets the numeric HTTP status code
+associated with the response <em>res</em> to <em>status</em>.
+The default value for a newly allocated response is 200 (<code>NNG_HTTP_STATUS_OK</code>).</p>
+</div>
+<div class="paragraph">
+<p>The <em>status</em> is not verified, so the caller should take care to ensure
+that only a valid code is supplied.</p>
+</div>
+<div class="paragraph">
+<p>For convenience, a number of predefined symbols are available.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-k">enum</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_HTTP_STATUS_CONTINUE</span> <span class="tok-o">=</span> <span class="tok-mi">100</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_SWITCHING</span> <span class="tok-o">=</span> <span class="tok-mi">101</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PROCESSING</span> <span class="tok-o">=</span> <span class="tok-mi">102</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_OK</span> <span class="tok-o">=</span> <span class="tok-mi">200</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_CREATED</span> <span class="tok-o">=</span> <span class="tok-mi">201</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_ACCEPTED</span> <span class="tok-o">=</span> <span class="tok-mi">202</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_AUTHORITATIVE</span> <span class="tok-o">=</span> <span class="tok-mi">203</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NO_CONTENT</span> <span class="tok-o">=</span> <span class="tok-mi">204</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_RESET_CONTENT</span> <span class="tok-o">=</span> <span class="tok-mi">205</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PARTIAL_CONTENT</span> <span class="tok-o">=</span> <span class="tok-mi">206</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_MULTI_STATUS</span> <span class="tok-o">=</span> <span class="tok-mi">207</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_ALREADY_REPORTED</span> <span class="tok-o">=</span> <span class="tok-mi">208</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_IM_USED</span> <span class="tok-o">=</span> <span class="tok-mi">226</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_MULTIPLE_CHOICES</span> <span class="tok-o">=</span> <span class="tok-mi">300</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_STATUS_MOVED_PERMANENTLY</span> <span class="tok-o">=</span> <span class="tok-mi">301</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_FOUND</span> <span class="tok-o">=</span> <span class="tok-mi">302</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_SEE_OTHER</span> <span class="tok-o">=</span> <span class="tok-mi">303</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_MODIFIED</span> <span class="tok-o">=</span> <span class="tok-mi">304</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_USE_PROXY</span> <span class="tok-o">=</span> <span class="tok-mi">305</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_TEMPORARY_REDIRECT</span> <span class="tok-o">=</span> <span class="tok-mi">307</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PERMANENT_REDIRECT</span> <span class="tok-o">=</span> <span class="tok-mi">308</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_BAD_REQUEST</span> <span class="tok-o">=</span> <span class="tok-mi">400</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNAUTHORIZED</span> <span class="tok-o">=</span> <span class="tok-mi">401</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PAYMENT_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">402</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_FORBIDDEN</span> <span class="tok-o">=</span> <span class="tok-mi">403</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_FOUND</span> <span class="tok-o">=</span> <span class="tok-mi">404</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_METHOD_NOT_ALLOWED</span> <span class="tok-o">=</span> <span class="tok-mi">405</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_ACCEPTABLE</span> <span class="tok-o">=</span> <span class="tok-mi">406</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PROXY_AUTH_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">407</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_REQUEST_TIMEOUT</span> <span class="tok-o">=</span> <span class="tok-mi">408</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_CONFLICT</span> <span class="tok-o">=</span> <span class="tok-mi">409</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_GONE</span> <span class="tok-o">=</span> <span class="tok-mi">410</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_LENGTH_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">411</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PRECONDITION_FAILED</span> <span class="tok-o">=</span> <span class="tok-mi">412</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PAYLOAD_TOO_LARGE</span> <span class="tok-o">=</span> <span class="tok-mi">413</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_ENTITY_TOO_LONG</span> <span class="tok-o">=</span> <span class="tok-mi">414</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE</span> <span class="tok-o">=</span> <span class="tok-mi">415</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_RANGE_NOT_SATISFIABLE</span> <span class="tok-o">=</span> <span class="tok-mi">416</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_EXPECTATION_FAILED</span> <span class="tok-o">=</span> <span class="tok-mi">417</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_TEAPOT</span> <span class="tok-o">=</span> <span class="tok-mi">418</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNPROCESSABLE_ENTITY</span> <span class="tok-o">=</span> <span class="tok-mi">422</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_LOCKED</span> <span class="tok-o">=</span> <span class="tok-mi">423</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_FAILED_DEPENDENCY</span> <span class="tok-o">=</span> <span class="tok-mi">424</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UPGRADE_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">426</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_PRECONDITION_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">428</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_TOO_MANY_REQUESTS</span> <span class="tok-o">=</span> <span class="tok-mi">429</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_HEADERS_TOO_LARGE</span> <span class="tok-o">=</span> <span class="tok-mi">431</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_UNAVAIL_LEGAL_REASONS</span> <span class="tok-o">=</span> <span class="tok-mi">451</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_INTERNAL_SERVER_ERROR</span> <span class="tok-o">=</span> <span class="tok-mi">500</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_IMPLEMENTED</span> <span class="tok-o">=</span> <span class="tok-mi">501</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_BAD_GATEWAY</span> <span class="tok-o">=</span> <span class="tok-mi">502</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_SERVICE_UNAVAILABLE</span> <span class="tok-o">=</span> <span class="tok-mi">503</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_GATEWAY_TIMEOUT</span> <span class="tok-o">=</span> <span class="tok-mi">504</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_HTTP_VERSION_NOT_SUPP</span> <span class="tok-o">=</span> <span class="tok-mi">505</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_VARIANT_ALSO_NEGOTIATES</span> <span class="tok-o">=</span> <span class="tok-mi">506</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_INSUFFICIENT_STORAGE</span> <span class="tok-o">=</span> <span class="tok-mi">507</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_LOOP_DETECTED</span> <span class="tok-o">=</span> <span class="tok-mi">508</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NOT_EXTENDED</span> <span class="tok-o">=</span> <span class="tok-mi">510</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_HTTP_STATUS_NETWORK_AUTH_REQUIRED</span> <span class="tok-o">=</span> <span class="tok-mi">511</span><span class="tok-p">,</span>
+<span class="tok-p">};</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>Please see the relevant HTTP RFCs for the semantics and correct
+use of these status codes.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is a good idea to also set the &#8220;reason phrase&#8221; with
+<a href="nng_http_res_set_reason.3http.html"><code>nng_http_set_reason()</code></a>.
+This will help any humans who may have to diagnose a failure.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_res_get_status.3http.html">nng_http_req_get_status(3http)</a>,
+<a href="nng_http_res_set_reason.3http.html">nng_http_req_set_reason(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_res_set_version.3http.html b/man/v1.2.4/nng_http_res_set_version.3http.html
new file mode 100644
index 00000000..8d8b67d4
--- /dev/null
+++ b/man/v1.2.4/nng_http_res_set_version.3http.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_res_set_version(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_res_set_version(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_res_set_version - set HTTP response protocol version</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_res_set_version</span><span class="tok-p">(</span><span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">res</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">version</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_res_set_version()</code> sets the HTTP protocol version associated with
+the response <em>res</em> to <em>version</em>.
+The <em>version</em> must be a string containing
+a valid HTTP protocol version, such as "HTTP/1.0".
+The default value is "HTTP/1.1".</p>
+</div>
+<div class="paragraph">
+<p>A local copy of the <em>version</em> is made in the response <em>res</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+No validation of the version supplied is performed.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>No support for HTTP in the library.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc.3http.html">nng_http_res_alloc(3http)</a>,
+<a href="nng_http_req_get_version.3http.html">nng_http_req_get_version(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_add_handler.3http.html b/man/v1.2.4/nng_http_server_add_handler.3http.html
new file mode 100644
index 00000000..d011fe70
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_add_handler.3http.html
@@ -0,0 +1,126 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_add_handler(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_add_handler(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_add_handler - add HTTP server handler</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_add_handler</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">h</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_add_handler()</code> adds the handler <em>h</em> to the server
+instance <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>If another handler is already added to the server that would conflict
+with handler <em>h</em>, then the operation will fail with <code>NNG_EADDRINUSE</code>.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>Handlers that are added to a server may be subsequently removed using the
+<a href="nng_http_server_del_handler.3http.html"><code>nng_http_server_del_handler()</code></a> function.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINUSE</code>
+</td>
+<td class="hdlist2">
+<p>Handler conflicts with another handler.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_alloc.3http.html">nng_http_handler_alloc(3http)</a>,
+<a href="nng_http_server_del_handler.3http.html">nng_http_server_del_handler(3http)</a>,
+<a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_del_handler.3http.html b/man/v1.2.4/nng_http_server_del_handler.3http.html
new file mode 100644
index 00000000..e5d93e53
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_del_handler.3http.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_del_handler(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_del_handler(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_del_handler - delete HTTP server handler</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_del_handler</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_http_handler</span> <span class="tok-o">*</span><span class="tok-n">h</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_del_handler()</code> removes the handler <em>h</em> from the server
+instance <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOENT</code>
+</td>
+<td class="hdlist2">
+<p>Handler is not registered with server.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_handler_free.3http.html">nng_http_handler_free(3http)</a>,
+<a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_get_tls.3http.html b/man/v1.2.4/nng_http_server_get_tls.3http.html
new file mode 100644
index 00000000..5f65ac67
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_get_tls.3http.html
@@ -0,0 +1,125 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_get_tls(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_get_tls(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_get_tls - get HTTP server TLS configuration</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_get_tls</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_tls_config</span> <span class="tok-o">**</span><span class="tok-n">cfgp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_get_tls()</code> obtains the TLS configuration of server <em>s</em> and
+saves a pointer to it in the address referenced by <em>cfgp</em>.</p>
+</div>
+<div class="paragraph">
+<p>The object will be returned with an extra hold (see
+<a href="nng_tls_config_hold.3tls.html"><code>nng_tls_config_hold()</code></a>)
+placed on it on behalf of the caller.
+The caller should free this hold by calling
+<a href="nng_tls_config_free.3tls.html"><code>nng_tls_config_free()</code></a> with it is done
+with the TLS configuration.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>TLS not configured on server.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>Either HTTP or TLS not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_set_tls.3http.html">nng_http_server_set_tls(3http)</a>,
+<a href="nng_http_server_start.3http.html">nng_http_server_start(3http)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_free.3tls.html">nng_tls_config_free(3tls)</a>,
+<a href="nng_tls_config_hold.3tls.html">nng_tls_config_hold(3tls)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_hold.3http.html b/man/v1.2.4/nng_http_server_hold.3http.html
new file mode 100644
index 00000000..d15d0f22
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_hold.3http.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_hold(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_hold(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_hold - get and hold HTTP server instance</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_hold</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">**</span><span class="tok-n">serverp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_hold()</code> acquires an instance of an HTTP server suitable
+for use in serving the URL identified by <em>url</em>, and stores a pointer to it
+at the location pointed to by <em>serverp</em>.</p>
+</div>
+<div class="paragraph">
+<p>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).</p>
+</div>
+<div class="paragraph">
+<p>The server instance is not started, and can have additional configuration
+applied to it before it is later started with
+<a href="nng_http_server_start.3http.html"><code>nng_http_server_start()</code></a>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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
+<em>url</em> to avoid confusion.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_server_add_handler.3http.html">nng_http_server_add_handler(3http)</a>,
+<a href="nng_http_server_release.3http.html">nng_http_server_release(3http)</a>,
+<a href="nng_http_server_stop.3http.html">nng_http_server_stop(3http)</a>,
+<a href="nng_url_parse.3.html">nng_url_parse(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_release.3http.html b/man/v1.2.4/nng_http_server_release.3http.html
new file mode 100644
index 00000000..2bf26a36
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_release.3http.html
@@ -0,0 +1,108 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_release(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_release(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_release - release HTTP server instance</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_server_release</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">server</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_release()</code> releases an instance of an HTTP <em>server</em>
+that was previously held with
+<a href="nng_http_server_hold.3http.html"><code>nng_http_server_hold()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>This effectively drops the reference count on the server instance. When
+the reference count drops to zero, then the <em>server</em> 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.)</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_stop.3http.html">nng_http_server_stop(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_res_error.3http.html b/man/v1.2.4/nng_http_server_res_error.3http.html
new file mode 100644
index 00000000..d30de0a7
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_res_error.3http.html
@@ -0,0 +1,123 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_res_error(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_res_error(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_res_error - use HTTP server error page</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_res_error</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">server</span><span class="tok-p">,</span>
+ <span class="tok-n">nng_http_res</span> <span class="tok-o">*</span><span class="tok-n">response</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_res_error()</code> sets the body of <em>response</em>
+to <em>server</em>'s error page, which may have been customized using the
+<a href="nng_http_server_set_error_file.3http.html"><code>nng_http_server_error_file()</code></a>
+or
+<a href="nng_http_server_set_error_page.3http.html"><code>nng_http_server_error_page()</code></a>
+functions.</p>
+</div>
+<div class="paragraph">
+<p>The status code of the <em>response</em> should have already been set, either
+implicitly by allocating it with
+<a href="nng_http_res_alloc_error.3http.html"><code>nng_http_res_alloc_error()</code></a>,
+or by calling
+<a href="nng_http_res_set_status.3http.html"><code>nng_http_res_set_status()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Any content body previously set for <em>response</em> will be overridden by
+this function.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc_error.3http.html">nng_http_res_alloc_error(3http)</a>,
+<a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_set_error_file.3http.html">nng_http_server_set_error_file(3http)</a>,
+<a href="nng_http_server_set_error_page.3http.html">nng_http_server_set_error_page(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_set_error_file.3http.html b/man/v1.2.4/nng_http_server_set_error_file.3http.html
new file mode 100644
index 00000000..ac8fd29f
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_set_error_file.3http.html
@@ -0,0 +1,166 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_set_error_file(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_set_error_file(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_set_error_file - set custom HTTP error file</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_set_error_file</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">server</span><span class="tok-p">,</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">code</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_set_error_file()</code> sets an error page to be used
+for HTTP status <em>code</em> on the server instance <em>server</em>.
+The body content of the HTTP responses will contain the file contents of
+the file located at <em>path</em>, which should be an HTML file.</p>
+</div>
+<div class="paragraph">
+<p>The custom HTML content will be used when the server is returning an
+internally generated error response, or is returning an error response
+that was allocated with the
+<a href="nng_http_res_alloc_error.3http.html"><code>nng_http_res_alloc_error()</code></a>
+function.
+This HTML content will also be used if the application calls the
+<a href="nng_http_server_res_error.3http.html"><code>nng_http_server_res_error()</code></a>.
+The last custom error page set for <em>code</em> by either this function or
+xref:`nng_http_server_set_error_page.3http.adoc[<code>nng_http_server_error_page()</code>]
+will be used.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Error responses that have their body content changed after allocation,
+or that are written directly by the application, will not use the body
+content supplied here.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The file contents of <em>path</em> are read when this function is called.
+Therefore, if the file contents are changed, then this function should
+be called again to update the error page.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOENT</code>
+</td>
+<td class="hdlist2">
+<p>The file named by <em>path</em> does not exist.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPERM</code>
+</td>
+<td class="hdlist2">
+<p>No permission to read the file named by <em>path</em>.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc_error.3http.html">nng_http_res_alloc_error(3http)</a>,
+<a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_res_error.3http.html">nng_http_server_res_error(3http)</a>,
+<a href="nng_http_server_set_error_page.3http.html">nng_http_server_set_error_page(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_set_error_page.3http.html b/man/v1.2.4/nng_http_server_set_error_page.3http.html
new file mode 100644
index 00000000..bd638aca
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_set_error_page.3http.html
@@ -0,0 +1,139 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_set_error_page(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_set_error_page(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_set_error_page - set custom HTTP error page</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_set_error_page</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">server</span><span class="tok-p">,</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">code</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">html</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_set_error_page()</code> sets an error page to be used
+for HTTP status <em>code</em> on the server instance <em>server</em>.
+The body content of the HTTP responses will contain <em>html</em>.</p>
+</div>
+<div class="paragraph">
+<p>The custom HTML content will be used when the server is returning an
+internally generated error response, or is returning an error response
+that was allocated with the
+<a href="nng_http_res_alloc_error.3http.html"><code>nng_http_res_alloc_error()</code></a>
+function.
+This HTML content will also be used if the application calls the
+<a href="nng_http_server_res_error.3http.html"><code>nng_http_server_res_error()</code></a>.
+The last custom error page set for <em>code</em> by either this function or
+<a href="nng_http_server_set_error_file.3http.html"><code>nng_http_server_error_file()</code></a>
+will be used.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Error responses that have their body content changed after allocation,
+or that are written directly by the application, will not use the body
+content supplied here.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The supplied HTML content is copied by this function, and may be reused
+after this function returns.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_res_alloc_error.3http.html">nng_http_res_alloc_error(3http)</a>,
+<a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_res_error.3http.html">nng_http_server_res_error(3http)</a>,
+<a href="nng_http_server_set_error_file.3http.html">nng_http_server_set_error_file(3http)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_set_tls.3http.html b/man/v1.2.4/nng_http_server_set_tls.3http.html
new file mode 100644
index 00000000..5d5ccbea
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_set_tls.3http.html
@@ -0,0 +1,149 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_set_tls(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_set_tls(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_set_tls - set HTTP server TLS configuration</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_set_tls</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_set_tls()</code> sets the TLS configuration of server <em>s</em> to
+<em>cfg</em>.</p>
+</div>
+<div class="paragraph">
+<p>This change overwrites any previous TLS configuration.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This also invalidates any previously obtained values from
+<a href="nng_http_server_get_tls.3http.html"><code>nng_http_server_get_tls()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If the server is already running (i.e. it has been started with
+<a href="nng_http_server_start.3http.html"><code>nng_http_server_start()</code></a>) then this will
+fail with <code>NNG_EBUSY</code>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Generally, the <em>cfg</em> must have a configured private key, set with
+<a href="nng_tls_config_own_cert.3tls.html"><code>nng_tls_config_own_cert()</code></a> or similar.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>Server instance is running.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>Either HTTP or TLS not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_server_get_tls.3http.html">nng_http_server_get_tls(3http)</a>,
+<a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_start.3http.html">nng_http_server_start(3http)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_start.3http.html b/man/v1.2.4/nng_http_server_start.3http.html
new file mode 100644
index 00000000..94cbf171
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_start.3http.html
@@ -0,0 +1,124 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_start(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_start(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_start - start HTTP server</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_http_server_start</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">server</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_start()</code> starts the HTTP server instance <em>server</em>.
+This causes it to bind to the appropriate TCP port, and start accepting
+connections and handling HTTP requests.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINUSE</code>
+</td>
+<td class="hdlist2">
+<p>The TCP port is unavailable.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The server is configured with an invalid address.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>HTTP not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_release.3http.html">nng_http_server_release(3http)</a>,
+<a href="nng_http_server_stop.3http.html">nng_http_server_stop(3http)</a>,
+<a href="nng_url_parse.3.html">nng_url_parse(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_http_server_stop.3http.html b/man/v1.2.4/nng_http_server_stop.3http.html
new file mode 100644
index 00000000..9808fb08
--- /dev/null
+++ b/man/v1.2.4/nng_http_server_stop.3http.html
@@ -0,0 +1,114 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_http_server_stop(3http)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_http_server_stop(3http) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_http_server_stop - stop HTTP server</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/http/http.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_http_server_stop</span><span class="tok-p">(</span><span class="tok-n">nng_http_server</span> <span class="tok-o">*</span><span class="tok-n">server</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_http_server_stop()</code> undoes the effect of
+<a href="nng_http_server_start.3http.html"><code>nng_http_server_start()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Each call by
+<a href="nng_http_server_start.3http.html"><code>nng_http_server_start()</code></a> acts as reference
+count, and should be matched by a call to <code>nng_http_server_stop()</code>.
+When the reference count drops to zero, then the server is actually stopped,
+and existing open connections to it are closed.</p>
+</div>
+<div class="paragraph">
+<p>This function does not wait for the connections to close.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Once the server instance is actually stopped, it cannot be started again,
+and any future calls to <a href="nng_http_server_hold.3http.html"><code>nng_http_server_hold()</code></a>
+will return a new instance of the server.
+It is expected that the caller will follow this function call with a call to
+<a href="nng_http_server_release.3http.html"><code>nng_http_server_release()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_http_server_hold.3http.html">nng_http_server_hold(3http)</a>,
+<a href="nng_http_server_release.3http.html">nng_http_server_release(3http)</a>,
+<a href="nng_http_server_start.3http.html">nng_http_server_start(3http)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_inproc.7.html b/man/v1.2.4/nng_inproc.7.html
new file mode 100644
index 00000000..4ee9c998
--- /dev/null
+++ b/man/v1.2.4/nng_inproc.7.html
@@ -0,0 +1,137 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_inproc(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_inproc(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_registration">Registration</a></li>
+<li><a href="#_uri_format">URI Format</a></li>
+<li><a href="#_socket_address">Socket Address</a></li>
+<li><a href="#_transport_options">Transport Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_inproc - intra-process transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/inproc/inproc.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_inproc_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+
+The <em>inproc</em> transport provides communication support between
+<em>nng</em> sockets within the same process.
+This may be used as an alternative
+to slower transports when data must be moved within the same process.</p>
+</div>
+<div class="paragraph">
+<p>This transport tries hard to avoid copying data, and thus is very
+light-weight.</p>
+</div>
+<div class="sect2">
+<h3 id="_registration">Registration</h3>
+<div class="paragraph">
+<p>The <em>inproc</em> transport is generally built-in to the <em>nng</em> core, so
+no extra steps to use it should be necessary.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_uri_format">URI Format</h3>
+<div class="paragraph">
+<p>
+This transport uses URIs using the scheme <code>inproc://</code>, followed by
+an arbitrary string of text, terminated by a <code>NUL</code> byte.</p>
+</div>
+<div class="paragraph">
+<p>Multiple URIs can be used within the
+same application, and they will not interfere with one another.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_socket_address">Socket Address</h3>
+<div class="paragraph">
+<p>When using an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a> structure,
+the actual structure is of type
+<a href="nng_sockaddr_inproc.5.html"><code>nng_sockaddr_inproc</code></a>.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_transport_options">Transport Options</h3>
+<div class="paragraph">
+<p>The <em>inproc</em> transport has no special options.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+While <em>inproc</em> accepts the option
+<a href="nng_options.5.html#NNG_OPT_RECVMAXSZ"><code>NNG_OPT_RECVMAXSZ</code></a> for
+compatibility, the value of the option is ignored with no enforcement.
+As <em>inproc</em> peers are in the same address space, they are implicitly trusted,
+and thus it makes no sense to spend cycles protecting a program from itself.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_inproc_register.3.html">nng_inproc_register(3)</a>,
+<a href="nng_sockaddr_inproc.5.html">nng_sockaddr_inproc(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_inproc_register.3.html b/man/v1.2.4/nng_inproc_register.3.html
new file mode 100644
index 00000000..81dd338f
--- /dev/null
+++ b/man/v1.2.4/nng_inproc_register.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_inproc_register(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_inproc_register(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_inproc_register - register inproc transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/inproc/inproc.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_inproc_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_inproc_register()</code> function registers the
+<em>inproc</em> transport for use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The transport is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_inproc.7.html">nng_inproc(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_iov.5.html b/man/v1.2.4/nng_iov.5.html
new file mode 100644
index 00000000..2f169503
--- /dev/null
+++ b/man/v1.2.4/nng_iov.5.html
@@ -0,0 +1,96 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_iov(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_iov(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_iov - scatter/gather element</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-p">{</span>
+ <span class="tok-kt">void</span> <span class="tok-o">*</span> <span class="tok-n">iov_buf</span><span class="tok-p">;</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">iov_len</span><span class="tok-p">;</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_iov</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_iov</code> 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.</p>
+</div>
+<div class="paragraph">
+<p>The operations that do this typically store an array of these in
+an <a href="nng_aio.5.html"><code>nng_aio</code></a> structure using the
+<a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a> function.</p>
+</div>
+<div class="paragraph">
+<p>The following structure members are present:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>iov_buf</code></dt>
+<dd>
+<p>This is a pointer to the first byte within the memory being
+referenced by this scatter/gather element.</p>
+</dd>
+<dt class="hdlist1"><code>iov_len</code></dt>
+<dd>
+<p>This is the size in bytes of this scatter/gather element.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ipc.7.html b/man/v1.2.4/nng_ipc.7.html
new file mode 100644
index 00000000..ca640431
--- /dev/null
+++ b/man/v1.2.4/nng_ipc.7.html
@@ -0,0 +1,189 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ipc(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ipc(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_registration">Registration</a></li>
+<li><a href="#_uri_format">URI Format</a></li>
+<li><a href="#_socket_address">Socket Address</a></li>
+<li><a href="#_transport_options">Transport Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ipc - IPC transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/ipc/ipc.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ipc_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>ipc</em> transport provides communication support between
+<em>nng</em> 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.</p>
+</div>
+<div class="sect2">
+<h3 id="_registration">Registration</h3>
+<div class="paragraph">
+<p>The <em>ipc</em> transport is generally built-in to the <em>nng</em> core, so
+no extra steps to use it should be necessary.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_uri_format">URI Format</h3>
+<div class="paragraph">
+<p>
+This transport uses URIs using the scheme <code>ipc://</code>, followed by a path
+name in the file system where the socket or named pipe should be created.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+On Windows, all names are prefixed by <code>\\.\pipe\</code> and do not
+reside in the normal file system.
+On POSIX platforms, the path is taken literally, and is relative to
+the current directory, unless it begins with <code>/</code>, in which case it is
+relative to the root directory.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+When using relative paths on POSIX systems, the address used and returned
+in properties like <code>NNG_OPT_LOCADDR</code> and <code>NNG_OPT_URL</code> will also be relative.
+Consequently, they will only be interpreted the same by processes that have
+the same working directory.
+To ensure maximum portability and safety, absolute paths are recommended
+whenever possible.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+If compatibility with legacy <em>nanomsg</em> applications is required,
+then pathnames must not be longer than 122 bytes, including the final
+<code>NUL</code> byte.
+This is because legacy versions of <em>nanomsg</em> cannot express URLs
+longer than 128 bytes, including the <code>ipc://</code> prefix.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_socket_address">Socket Address</h3>
+<div class="paragraph">
+<p>When using an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a> structure,
+the actual structure is of type <a href="nng_sockaddr_ipc.5.html"><code>nng_sockaddr_ipc</code></a>.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_transport_options">Transport Options</h3>
+<div class="paragraph">
+<p>The following transport options are supported by this transport,
+where supported by the underlying platform.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_ipc_options.5.html#NNG_OPT_IPC_PEER_GID"><code>NNG_OPT_IPC_PEER_GID</code></a></p>
+</li>
+<li>
+<p><a href="nng_ipc_options.5.html#NNG_OPT_IPC_PEER_PID"><code>NNG_OPT_IPC_PEER_PID</code></a></p>
+</li>
+<li>
+<p><a href="nng_ipc_options.5.html#NNG_OPT_IPC_PEER_UID"><code>NNG_OPT_IPC_PEER_UID</code></a></p>
+</li>
+<li>
+<p><a href="nng_ipc_options.5.html#NNG_OPT_IPC_PEER_ZONEID"><code>NNG_OPT_IPC_PEER_ZONEID</code></a></p>
+</li>
+<li>
+<p><a href="nng_ipc_options.5.html#NNG_OPT_IPC_PERMISSIONS"><code>NNG_OPT_IPC_PERMISSIONS</code></a></p>
+</li>
+<li>
+<p><a href="nng_ipc_options.5.html#NNG_OPT_IPC_SECURITY_DESCRIPTOR"><code>NNG_OPT_IPC_SECURITY_DESCRIPTOR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_URL"><code>NNG_OPT_URL</code></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_ipc_options.5.html">nng_ipc_options(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ipc_options.5.html b/man/v1.2.4/nng_ipc_options.5.html
new file mode 100644
index 00000000..61e121e2
--- /dev/null
+++ b/man/v1.2.4/nng_ipc_options.5.html
@@ -0,0 +1,256 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ipc_options(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ipc_options(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_ipc_options">IPC Options</a></li>
+<li><a href="#_inherited_options">Inherited Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ipc_options - IPC-specific options</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-cp">#define NNG_OPT_IPC_PEER_GID &quot;ipc:peer-gid&quot;</span>
+<span class="tok-cp">#define NNG_OPT_IPC_PEER_PID &quot;ipc:peer-pid&quot;</span>
+<span class="tok-cp">#define NNG_OPT_IPC_PEER_UID &quot;ipc:peer-uid&quot;</span>
+<span class="tok-cp">#define NNG_OPT_IPC_PEER_ZONEID &quot;ipc:peer-zoneid&quot;</span>
+<span class="tok-cp">#define NNG_OPT_IPC_PERMISSIONS &quot;ipc:permissions&quot;</span>
+<span class="tok-cp">#define NNG_OPT_IPC_SECURITY_DESCRIPTOR &quot;ipc:security-descriptor&quot;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This page documents the various standard options that can be set or
+retrieved on objects using IPC in the <em>nng</em> library.</p>
+</div>
+<div class="paragraph">
+<p>The option names should always be used by their symbolic definitions.</p>
+</div>
+<div class="paragraph">
+<p>In the following list of options, the name of the option is supplied,
+along with the data type of the underlying value.</p>
+</div>
+<div class="paragraph">
+<p>Some options are only meaningful or supported in certain contexts, or may
+have other access restrictions.
+An attempt has been made to include details about such restrictions in the
+description of the option.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The availability of any of the following options is platform-specific,
+as the implementations of IPC are quite different on Windows and POSIX systems.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_ipc_options">IPC Options</h3>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><a id="NNG_OPT_IPC_PEER_GID"></a><code>NNG_OPT_IPC_PEER_GID</code></dt>
+<dd>
+<p>(<code>uint64_t</code>)
+This read-only option provides a connected peer&#8217;s primary
+group id.
+This is the effective group id of the peer when either the underlying
+<code>listen()</code> or <code>connect()</code> calls were made, and is not forgeable.
+This option is generally only available on POSIX systems.</p>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_IPC_PEER_PID"></a><code>NNG_OPT_IPC_PEER_PID</code></dt>
+<dd>
+<p>(<code>uint64_t</code>)
+This read-only option provides the the process id
+of the connected peer.
+This option is only available on Windows, Linux, and certain other systems.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Applications should not assume that the process ID does not change,
+as it is possible (although unsupported!) for a nefarious process to pass a
+file descriptor between processes.
+However, it is not possible for a nefarious application to forge the identity
+of a well-behaved one using this method.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_IPC_PEER_UID"></a><code>NNG_OPT_IPC_PEER_UID</code></dt>
+<dd>
+<p>(<code>uint64_t</code>)
+This read-only option provides a connected peer&#8217;s user id.
+This is the effective user id of the peer when either the underlying
+<code>listen()</code> or <code>connect()</code> calls were made, and is not forgeable.
+This option is generally only available on POSIX systems.</p>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_IPC_PEER_ZONEID"></a><code>NNG_OPT_IPC_PEER_ZONEID</code></dt>
+<dd>
+<p>(<code>uint64_t</code>)
+This read-only option provides a connected peer&#8217;s the zone id.
+Zones (and this option) are only supported on Solaris and illumos systems.</p>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_IPC_PERMISSIONS"></a><code>NNG_OPT_IPC_PERMISSIONS</code></dt>
+<dd>
+<p>(<code>int</code>)
+This write-only option may be applied to a listener to configure the
+permissions that are used on the UNIX domain socket created by that listener.
+This property is only supported on POSIX systems.
+The value is of type <code>int</code>, representing the normal permission bits
+on a file, such as <code>0600</code> (typically meaning read-write to the owner, and
+no permissions for anyone else.)
+The default is system-specific, most often <code>0644</code>.</p>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Not all systems validate these permissions.
+In particular, illumos and Solaris are known to ignore these permission
+settings when connecting.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Normally both read and write permission will be necessary for a
+peer dialer to connect.
+See your system documentation for UNIX domain sockets for more information.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <em>umask</em> of the process is <strong>not</strong> applied to these bits.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The best practice for limiting access is to place the socket in a
+directory writable only by the server, and only readable and searchable
+by clients.
+All mainstream POSIX systems will fail to permit a client to connect
+to a socket located in a directory for which the client lacks search (execute)
+permission.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_IPC_SECURITY_DESCRIPTOR"></a><code>NNG_OPT_IPC_SECURITY_DESCRIPTOR</code></dt>
+<dd>
+<p>(<code>PSECURITY_DESCRIPTOR</code>)
+This write-only option may be used on listeners on Windows platforms to
+configure the <code>SECURITY_DESCRIPTOR</code> that is used when creating the underlying
+named pipe.
+The value is a pointer, <code>PSECURITY_DESCRIPTOR</code>, and may only be
+applied to listeners that have not been started yet.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_inherited_options">Inherited Options</h3>
+<div class="paragraph">
+<p>Generally, the following option values are also available for TLS objects,
+when appropriate for the context:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ipc_dialer_getopt.3ipc.html">nng_ipc_dialer_getopt(3ipc)</a>,
+<a href="nng_ipc_dialer_setopt.3ipc.html">nng_ipc_dialer_setopt(3ipc)</a>,
+<a href="nng_ipc_getopt.3ipc.html">nng_ipc_getopt(3ipc)</a>,
+<a href="nng_ipc_listener_getopt.3ipc.html">nng_ipc_listener_getopt(3ipc)</a>,
+<a href="nng_ipc_listener_setopt.3ipc.html">nng_ipc_listener_setopt(3ipc)</a>,
+<a href="nng_ipc_setopt.3ipc.html">nng_ipc_setopt(3ipc)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ipc_register.3.html b/man/v1.2.4/nng_ipc_register.3.html
new file mode 100644
index 00000000..08905519
--- /dev/null
+++ b/man/v1.2.4/nng_ipc_register.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ipc_register(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ipc_register(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ipc_register - register ipc transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/ipc/ipc.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ipc_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_ipc_register()</code> function registers the
+<em>ipc</em> transport for use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The transport is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ipc.7.html">nng_ipc(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listen.3.html b/man/v1.2.4/nng_listen.3.html
new file mode 100644
index 00000000..7d895695
--- /dev/null
+++ b/man/v1.2.4/nng_listen.3.html
@@ -0,0 +1,171 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listen(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listen(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listen - create and start listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listen</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">,</span> <span class="tok-n">nng_listener</span> <span class="tok-o">*</span><span class="tok-n">lp</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_listen()</code> function creates a newly initialized
+<a href="nng_listener.5.html"><code>nng_listener</code></a> object, associated with socket <em>s</em>,
+and configured to listen at the address specified by <em>url</em>, and starts it.
+If the value of <em>lp</em> is not <code>NULL</code>, then
+the newly created listener is stored at the address indicated by <em>lp</em>.</p>
+</div>
+<div class="paragraph">
+<p>Listeners are used to accept connections initiated by remote dialers.
+An incoming connection generally results in and
+<a href="nng_pipe.5.html"><code>nng_pipe</code></a> object being created and attached to the socket <em>s</em>.
+Unlike dialers, listeners generally can create many
+pipes, which may be open concurrently.</p>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> argument is ignored, but reserved for future use.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While it is convenient to think of listeners as &#8220;servers&#8221;, 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 <a href="nng_req.7.html"><em>req</em></a>
+socket might have associated dialers, but might also have associated listeners.
+It may even have some of each at the same time!
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Because the listener is started immediately, it is generally not possible
+to apply extra configuration; if that is needed applications should consider
+using <a href="nng_listener_create.3.html"><code>nng_listener_create()</code></a> and
+<a href="nng_listener_start.3.html"><code>nng_listener_start()</code></a> instead.</p>
+</div>
+<div class="paragraph">
+<p>The created listener will continue to accept new connections, associating
+their pipes with the socket, until either it or the socket <em>s</em> is closed.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINUSE</code>
+</td>
+<td class="hdlist2">
+<p>The address specified by <em>url</em> is already in use.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>url</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> or an invalid <em>url</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dial.3.html">nng_dial(3)</a>,
+<a href="nng_listener_close.3.html">nng_listener_close(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_listener_start.3.html">nng_listener_start(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener.5.html b/man/v1.2.4/nng_listener.5.html
new file mode 100644
index 00000000..aea612b0
--- /dev/null
+++ b/man/v1.2.4/nng_listener.5.html
@@ -0,0 +1,147 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#NNG_LISTENER_INITIALIZER">Initialization</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener - listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_listener_s</span> <span class="tok-n">nng_listener</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_listener</code> is a handle to a &#8220;listener&#8221; object, which is responsible for
+creating <a href="nng_pipe.5.html"><code>nng_pipe</code></a> 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.</p>
+</div>
+<div class="paragraph">
+<p>Listener objects are created by the
+<a href="nng_listener_create.3.html"><code>nng_listener_create()</code></a>
+or <a href="nng_listen.3.html"><code>nng_listen()</code></a> functions, and are always &#8220;owned&#8221;
+by a single <a href="nng_socket.5.html"><code>nng_socket</code></a>.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <code>nng_listener</code> structure is always passed by value (both
+for input parameters and return values), and should be treated opaquely.
+Passing structures this way gives the compiler a chance to perform
+accurate type checks in functions passing values of this type.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+A given <a href="nng_socket.5.html"><code>nng_socket</code></a> may have multiple listener
+objects, multiple <a href="nng_dialer.5.html">dialer</a> objects, or even some
+of both.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The client/server relationship described by dialer/listener is
+completely orthogonal to any similar relationship in the protocols.
+For example, a <a href="nng_rep.7.html"><em>rep</em></a> socket may use a dialer
+to connect to a listener on an <a href="nng_req.7.html"><em>req</em></a> socket.
+This orthogonality can lead to innovative solutions to otherwise
+challenging communications problems.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Listener objects may be destroyed by the
+<a href="nng_listener_close.3.html"><code>nng_listener_close()</code></a> function.
+They are also closed when their &#8220;owning&#8221; socket is closed.</p>
+</div>
+<div class="sect2">
+<h3 id="NNG_LISTENER_INITIALIZER">Initialization</h3>
+<div class="paragraph">
+<p>A listener may be initialized using the macro <code>NNG_LISTENER_INITIALIZER</code>
+before it is opened, to prevent confusion with valid open listener.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_close.3.html">nng_listener_close(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>,
+<a href="nng_listener_getopt.3.html">nng_listener_getopt(3)</a>,
+<a href="nng_listener_id.3.html">nng_listener_id(3)</a>,
+<a href="nng_listener_setopt.3.html">nng_listener_setopt(3)</a>,
+<a href="nng_listener_start.3.html">nng_listener_start(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_close.3.html b/man/v1.2.4/nng_listener_close.3.html
new file mode 100644
index 00000000..34eaaa5c
--- /dev/null
+++ b/man/v1.2.4/nng_listener_close.3.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_close(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_close(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_close - close listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_close</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_listener_close()</code> function closes the listener <em>l</em>.
+This also closes any pipes that have been created by the listener.</p>
+</div>
+<div class="paragraph">
+<p>Once this function returns, the listener <em>l</em> and any of its resources
+are deallocated.
+Therefore it is an error to attempt to access <em>l</em>
+after this function has returned.
+(Attempts to do so will result in <code>NNG_ECLOSED</code> errors.)</p>
+</div>
+<div class="paragraph">
+<p>Listeners are implicitly closed when the socket they are associated with
+is closed.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>l</em> does not refer to an open listener.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_close.3.html">nng_close(3)</a>,
+<a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_create.3.html b/man/v1.2.4/nng_listener_create.3.html
new file mode 100644
index 00000000..b4b41f5c
--- /dev/null
+++ b/man/v1.2.4/nng_listener_create.3.html
@@ -0,0 +1,165 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_create(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_create(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_create - create listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_create</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-o">*</span><span class="tok-n">listenerp</span><span class="tok-p">,</span> <span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_listener_create()</code> function creates a newly initialized
+<a href="nng_listener.5.html"><code>nng_listener</code></a> object, associated with socket <em>s</em>,
+and configured to listen at the address specified by <em>url</em>,
+and stores a pointer to at the location referenced by <em>listenerp</em>.</p>
+</div>
+<div class="paragraph">
+<p>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 <em>s</em>.
+Unlike dialers, listeners generally can create many pipes,
+which may be open concurrently.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While it is convenient to think of listeners as &#8220;servers&#8221;, 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 <a href="nng_req.7.html"><em>req</em></a> socket might have associated dialers,
+but might also have associated listeners.
+It may even have some of each at the same time!
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The listener is not started, but may be further configured with
+the <a href="nng_listener_setopt.3.html"><code>nng_listener_setopt()</code></a> family of
+functions.</p>
+</div>
+<div class="paragraph">
+<p>Once it is fully configured, the listener may be started using the
+<a href="nng_listener_start.3.html"><code>nng_listener_start()</code></a> function.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+If no specific configuration is required, consider using the
+simpler <a href="nng_listen.3.html"><code>nng_listen()</code></a> function instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>url</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_create.3.html">nng_dialer_create(3)</a>
+<a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_close.3.html">nng_listener_close(3)</a>,
+<a href="nng_listener_getopt.3.html">nng_listener_getopt(3)</a>,
+<a href="nng_listener_setopt.3.html">nng_listener_setopt(3)</a>,
+<a href="nng_listener_start.3.html">nng_listener_start(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_get.3.html b/man/v1.2.4/nng_listener_get.3.html
new file mode 100644
index 00000000..4ea46ea9
--- /dev/null
+++ b/man/v1.2.4/nng_listener_get.3.html
@@ -0,0 +1,267 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_get(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_get(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_get - get listener option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_addr</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">sap</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_listener_get()</code> functions are used to retrieve option values for
+the <a href="nng_listener.5.html">listener</a> <em>l</em>.
+The actual options that may be retrieved in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the listener <em>l</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_get()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced
+by <em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;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 <em>valszp</em> does not
+exceed the original buffer size to check for truncation.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_get_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_get_addr()</code></dt>
+<dd>
+<p>This function is used to retrieve an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+into the value referenced by <em>sap</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>l</em> does not refer to an open listener.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_listener_set.3.html">nng_listener_set(3)</a>
+<a href="nng_socket_get.3.html">nng_socket_get(3)</a>,
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_getopt.3.html b/man/v1.2.4/nng_listener_getopt.3.html
new file mode 100644
index 00000000..14e7dbee
--- /dev/null
+++ b/man/v1.2.4/nng_listener_getopt.3.html
@@ -0,0 +1,279 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_getopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_getopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_getopt - get listener option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_sockaddr</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">sap</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_getopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_listener_get.3.html">nng_listener_get</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_listener_getopt()</code> functions are used to retrieve option values for
+the <a href="nng_listener.5.html">listener</a> <em>l</em>.
+The actual options that may be retrieved in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the listener <em>l</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_getopt()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced
+by <em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;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 <em>valszp</em> does not
+exceed the original buffer size to check for truncation.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_getopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_getopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_getopt_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_getopt_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_getopt_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_getopt_sockaddr()</code></dt>
+<dd>
+<p>This function is used to retrieve an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+into the value referenced by <em>sap</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_getopt_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_getopt_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>l</em> does not refer to an open listener.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_listener_setopt.3.html">nng_listener_setopt(3)</a>
+<a href="nng_getopt.3.html">nng_getopt(3)</a>,
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_id.3.html b/man/v1.2.4/nng_listener_id.3.html
new file mode 100644
index 00000000..13840de6
--- /dev/null
+++ b/man/v1.2.4/nng_listener_id.3.html
@@ -0,0 +1,105 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_id(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_id(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_id - return numeric listener identifier</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_id</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_listener_id()</code> function returns a positive identifier for the
+listener <em>l</em>, if it is valid.
+Otherwise it returns <code>-1</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+A listener is considered valid if it was ever created with the
+<a href="nng_listener_create.3.html"><code>nng_listener_create()</code></a> or
+<a href="nng_listen.3.html"><code>nng_listen()</code></a> functions.
+listeners that are allocated on the stack or statically should be
+initialized with the macro
+<a href="nng_ctx.5.html#NNG_LISTENER_INITIALIZER"><code>NNG_LISTENER_INITIALIZER</code></a> to ensure that
+they cannot be confused with a valid listener before they are created properly.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the positive value for the listener identifier, or
+<code>-1</code> if the listener is invalid.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_set.3.html b/man/v1.2.4/nng_listener_set.3.html
new file mode 100644
index 00000000..3490b8e5
--- /dev/null
+++ b/man/v1.2.4/nng_listener_set.3.html
@@ -0,0 +1,272 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_set(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_set(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_set - set listener option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set_bool</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set_int</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set_ms</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set_size</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set_string</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_set_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_listener_set()</code> functions are used to configure options for
+the <a href="nng_listener.5.html">listener</a> <em>l</em>.
+The actual options that may be configured in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Once a listener has started, it is generally not possible to change
+its configuration.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is configured on the listener <em>l</em>.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_set()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_set_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_set_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_set_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_set_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed by other functions.
+For example, TLS configuration objects created with
+(<a href="nng_tls_config_alloc.3tls.html"><code>nng_tls_config_alloc()</code></a>)
+can be passed this way.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_set_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_set_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_set_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>l</em> does not refer to an open listener.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The listener <em>l</em> is already started.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_listener_get.3.html">nng_listener_get(3)</a>
+<a href="nng_socket_set.3.html">nng_socket_set(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_setopt.3.html b/man/v1.2.4/nng_listener_setopt.3.html
new file mode 100644
index 00000000..8582125b
--- /dev/null
+++ b/man/v1.2.4/nng_listener_setopt.3.html
@@ -0,0 +1,284 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_setopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_setopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_setopt - set listener option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span>
+ <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_setopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_listener_set.3.html">nng_listener_set</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_listener_setopt()</code> functions are used to configure options for
+the <a href="nng_listener.5.html">listener</a> <em>l</em>.
+The actual options that may be configured in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific options and protocol-specific options
+are documented with the transports and protocols themselves.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Once a listener has started, it is generally not possible to change
+its configuration.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is configured on the listener <em>l</em>.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_setopt()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_setopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_setopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_setopt_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_setopt_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed by other functions.
+For example, TLS configuration objects created with
+(<a href="nng_tls_config_alloc.3tls.html"><code>nng_tls_config_alloc()</code></a>)
+can be passed this way.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_listener_setopt_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_setopt_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_listener_setopt_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>l</em> does not refer to an open listener.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The listener <em>l</em> is already started.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_listener_getopt.3.html">nng_listener_getopt(3)</a>
+<a href="nng_setopt.3.html">nng_setopt(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_listener_start.3.html b/man/v1.2.4/nng_listener_start.3.html
new file mode 100644
index 00000000..f0913345
--- /dev/null
+++ b/man/v1.2.4/nng_listener_start.3.html
@@ -0,0 +1,118 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_listener_start(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_listener_start(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_listener_start - start listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_listener_start</span><span class="tok-p">(</span><span class="tok-n">nng_listener</span> <span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_listener_start()</code> function starts the listener <em>l</em>.</p>
+</div>
+<div class="paragraph">
+<p>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 <a href="nng_pipe.5.html"><code>nng_pipe</code></a> object,
+which will be attached to the listener&#8217;s socket.</p>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> argument is ignored, but reserved for future use.</p>
+</div>
+<div class="paragraph">
+<p>Once a listener has started, it is generally not possible to change
+its configuration.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>l</em> does not refer to an open listener.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The listener <em>l</em> is already started.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_listen.3.html">nng_listen(3)</a>,
+<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg.5.html b/man/v1.2.4/nng_msg.5.html
new file mode 100644
index 00000000..939657b9
--- /dev/null
+++ b/man/v1.2.4/nng_msg.5.html
@@ -0,0 +1,108 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg - message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_msg</span> <span class="tok-n">nng_msg</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_msg</code> represents a single message sent between Scalability Protocols
+peers.
+Messages internally have a body, containing the application supplied
+payload, and a header, containing protocol specific routing and similar
+related information.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Using the message-oriented functions in the <a href="nng.7.html"><em>nng</em></a> API is
+a good way to reduce the likelihood of data copies and improve application
+performance.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Messages are allocated using the <a href="nng_msg_alloc.3.html"><code>nng_msg_alloc()</code></a>
+function, and are deallocated using the <a href="nng_msg_free.3.html"><code>nng_msg_free()</code></a>
+function.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_dup.3.html">nng_msg_dup(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_header.3.html">nng_msg_header(3)</a>,
+<a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_recvmsg.3.html">nng_recvmsg(3)</a>,
+<a href="nng_sendmsg.3.html">nng_sendmsg(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_alloc.3.html b/man/v1.2.4/nng_msg_alloc.3.html
new file mode 100644
index 00000000..a61b8923
--- /dev/null
+++ b/man/v1.2.4/nng_msg_alloc.3.html
@@ -0,0 +1,104 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_alloc(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_alloc(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_alloc - allocate a message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">**</span><span class="tok-n">msgp</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_alloc()</code> function allocates a new message with body length <em>size</em>
+and stores the result in <em>msgp</em>.
+Messages allocated with this function contain a body and optionally a header.
+They are used with receive and transmit functions.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to allocate a message.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_dup.3.html">nng_msg_dup(3)</a>,
+<a href="nng_msg_header.3.html">nng_msg_header(3)</a>,
+<a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_append.3.html b/man/v1.2.4/nng_msg_append.3.html
new file mode 100644
index 00000000..a0db77a7
--- /dev/null
+++ b/man/v1.2.4/nng_msg_append.3.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_append(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_append(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_append - append to message body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_append</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_append_u16</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_append_u32</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_append_u64</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_append()</code> family of functions appends data to
+the end of the body of message <em>msg</em>, reallocating it if necessary.
+The first function appends <em>size</em> bytes, copying them from <em>val</em>.
+The remaining functions append the value specified (such as <em>val32</em>) in
+network-byte order (big-endian).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_chop.3.html">nng_msg_chop(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_insert.3.html">nng_msg_insert(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_msg_trim.3.html">nng_msg_trim(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_body.3.html b/man/v1.2.4/nng_msg_body.3.html
new file mode 100644
index 00000000..67260f80
--- /dev/null
+++ b/man/v1.2.4/nng_msg_body.3.html
@@ -0,0 +1,113 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_body(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_body(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_body - return message body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nng_msg_body</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_body()</code> function returns a pointer to the start of the body
+content of the message <em>msg</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The value returned by this is invalidated by a call to any of the
+functions that modify the message itself.
+Such functions are
+<a href="nng_msg_free.3.html"><code>nng_msg_free()</code></a>,
+<a href="nng_msg_realloc.3.html"><code>nng_msg_realloc()</code></a>,
+any of the <a href="nng_msg_trim.3.html"><code>nng_msg_trim()</code></a>,
+<a href="nng_msg_chop.3.html"><code>nng_msg_chop()</code></a>,
+<a href="nng_msg_append.3.html"><code>nng_msg_append()</code></a>,
+or <a href="nng_msg_insert.3.html"><code>nng_msg_insert()</code></a> variants.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Pointer to start of message body.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_append.3.html">nng_msg_append(3)</a>,
+<a href="nng_msg_chop.3.html">nng_msg_chop(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_insert.3.html">nng_msg_insert(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_msg_trim.3.html">nng_msg_trim(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_chop.3.html b/man/v1.2.4/nng_msg_chop.3.html
new file mode 100644
index 00000000..9a9e60ab
--- /dev/null
+++ b/man/v1.2.4/nng_msg_chop.3.html
@@ -0,0 +1,110 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_chop(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_chop(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_chop - remove data from end of message body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_chop</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_chop_u16</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-o">*</span><span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_chop_u32</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-o">*</span><span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_chop_u64</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_chop()</code> family of functions removes data from
+the end of the body of message <em>msg</em>.
+The first function removes <em>size</em> bytes.
+The remaining functions remove 2, 4, or 8 bytes, and stores them in the value
+(such as <em>val32</em>),
+after converting them from network-byte order (big-endian) to native byte order.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The message body is too short to remove the requested data.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_append.3.html">nng_msg_append(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_insert.3.html">nng_msg_insert(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_msg_trim.3.html">nng_msg_trim(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_clear.3.html b/man/v1.2.4/nng_msg_clear.3.html
new file mode 100644
index 00000000..dae709eb
--- /dev/null
+++ b/man/v1.2.4/nng_msg_clear.3.html
@@ -0,0 +1,84 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_clear(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_clear(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_clear - clear message body content</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_msg_clear</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_clear()</code> function resets the body length of <em>msg</em> to zero.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_dup.3.html b/man/v1.2.4/nng_msg_dup.3.html
new file mode 100644
index 00000000..29c540e0
--- /dev/null
+++ b/man/v1.2.4/nng_msg_dup.3.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_dup(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_dup(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_dup - duplicate a message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_dup</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">**</span><span class="tok-n">dup</span><span class="tok-p">,</span> <span class="tok-n">nng_msg_t</span> <span class="tok-o">*</span><span class="tok-n">orig</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_dup()</code> makes a duplicate of the original message <em>orig</em>, and
+saves the result in the location pointed by <em>dup</em>.
+The actual message body and header content is copied,
+but the duplicate may contain a
+different amount of unused space than the original message.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to duplicate a message.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_free.3.html b/man/v1.2.4/nng_msg_free.3.html
new file mode 100644
index 00000000..cdd11cfe
--- /dev/null
+++ b/man/v1.2.4/nng_msg_free.3.html
@@ -0,0 +1,86 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_free(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_free(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_free - free a message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_msg_free</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_free()</code> function deallocates the message <em>msg</em> entirely.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_get_pipe.3.html b/man/v1.2.4/nng_msg_get_pipe.3.html
new file mode 100644
index 00000000..053d602d
--- /dev/null
+++ b/man/v1.2.4/nng_msg_get_pipe.3.html
@@ -0,0 +1,113 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_get_pipe(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_get_pipe(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_get_pipe - get pipe for message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-n">nng_pipe</span> <span class="tok-nf">nng_msg_get_pipe</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_get_pipe()</code> returns the <a href="nng_pipe.5.html"><code>nng_pipe</code></a> object
+associated with message <em>msg</em>.
+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.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not all protocols support overriding the destination pipe.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>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 <a href="nng_pipe_getopt.3.html"><code>nng_pipe_getopt()</code></a> function
+is useful in this situation.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>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 message.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_set_pipe.3.html">nng_msg_set_pipe(3)</a>,
+<a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_header.3.html b/man/v1.2.4/nng_msg_header.3.html
new file mode 100644
index 00000000..a1964a83
--- /dev/null
+++ b/man/v1.2.4/nng_msg_header.3.html
@@ -0,0 +1,121 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_header(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_header(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_header - return message header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-nf">nng_msg_header</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_header()</code> function returns a pointer to the start of the header
+content of the message <em>msg</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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
+<a href="nng_options.5.html#NNG_OPT_RAW"><code>NNG_OPT_RAW</code></a> option.)
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The value returned by this is invalidated by a call to any of the
+functions that modify the message or the header content.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Pointer to start of message header.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_header_append.3.html">nng_msg_header_append(3)</a>,
+<a href="nng_msg_header_chop.3.html">nng_msg_header_chop(3)</a>,
+<a href="nng_msg_header_insert.3.html">nng_msg_header_insert(3)</a>
+<a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a>,
+<a href="nng_msg_header_trim.3.html">nng_msg_header_trim(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_header_append.3.html b/man/v1.2.4/nng_msg_header_append.3.html
new file mode 100644
index 00000000..251db5de
--- /dev/null
+++ b/man/v1.2.4/nng_msg_header_append.3.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_header_append(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_header_append(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_header_append - append to message header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_append</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_append_u16</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_append_u32</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_append_u64</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_header_append()</code> family of functions appends data to
+the end of the headers of message <em>msg</em>, reallocating it if necessary.
+The first function appends <em>size</em> bytes, copying them from <em>val</em>.</p>
+</div>
+<div class="paragraph">
+<p>The remaining functions append the value (such as <em>val32</em>) in
+network-byte order (big-endian).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_header.3.html">nng_msg_header(3)</a>,
+<a href="nng_msg_header_chop.3.html">nng_msg_header_chop(3)</a>,
+<a href="nng_msg_header_insert.3.html">nng_msg_header_insert(3)</a>,
+<a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a>,
+<a href="nng_msg_header_trim.3.html">nng_msg_header_trim(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_header_chop.3.html b/man/v1.2.4/nng_msg_header_chop.3.html
new file mode 100644
index 00000000..54f21634
--- /dev/null
+++ b/man/v1.2.4/nng_msg_header_chop.3.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_header_chop(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_header_chop(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_header_chop - remove data from end of message header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_chop</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_chop_u16</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-o">*</span><span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_chop_u32</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-o">*</span><span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_chop_u64</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_header_chop()</code> family of functions removes
+data from the end of the header of message <em>msg</em>.
+The first function removes <em>size</em> bytes.
+The remaining functions remove 2, 4, or 8 bytes, and stores them in the value
+(such as <em>val32</em>),
+after converting them from network-byte order (big-endian) to native
+byte order.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These function return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The message header is too short to remove the requested data.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_header.3.html">nng_msg_header(3)</a>,
+<a href="nng_msg_header_append.3.html">nng_msg_header_append(3)</a>,
+<a href="nng_msg_header_insert.3.html">nng_msg_header_insert(3)</a>,
+<a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a>,
+<a href="nng_msg_header_trim.3.html">nng_msg_header_trim(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_header_clear.3.html b/man/v1.2.4/nng_msg_header_clear.3.html
new file mode 100644
index 00000000..301071bf
--- /dev/null
+++ b/man/v1.2.4/nng_msg_header_clear.3.html
@@ -0,0 +1,85 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_header_clear(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_header_clear(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_header_clear - clear message header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_msg_header_clear</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_clear()</code> function resets the header length of <em>msg</em> to zero.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_header_insert.3.html b/man/v1.2.4/nng_msg_header_insert.3.html
new file mode 100644
index 00000000..cdff6aa4
--- /dev/null
+++ b/man/v1.2.4/nng_msg_header_insert.3.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_header_insert(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_header_insert(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_header_insert - prepend to message header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_insert</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_insert_u16</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_insert_u32</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_insert_u64</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_header_insert()</code> family of functions
+prepends data to the front of the headers of message <em>msg</em>, reallocating
+if necessary.
+The first function prepends <em>size</em> bytes, copying them from <em>val</em>.
+The remaining functions prepend the specified value (such as <em>val32</em>) in
+network-byte order (big-endian).</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_header.3.html">nng_msg_header(3)</a>,
+<a href="nng_msg_header_append.3.html">nng_msg_header_append(3)</a>,
+<a href="nng_msg_header_chop.3.html">nng_msg_header_chop(3)</a>,
+<a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a>,
+<a href="nng_msg_header_trim.3.html">nng_msg_header_trim(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_header_len.3.html b/man/v1.2.4/nng_msg_header_len.3.html
new file mode 100644
index 00000000..067264fc
--- /dev/null
+++ b/man/v1.2.4/nng_msg_header_len.3.html
@@ -0,0 +1,86 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_header_len(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_header_len(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_header_len - return message header length</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">size_t</span> <span class="tok-nf">nng_msg_header_len</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_header_len()</code> returns the length of message header of <em>msg</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Length of message header.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_header.3.html">nng_msg_header(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_header_trim.3.html b/man/v1.2.4/nng_msg_header_trim.3.html
new file mode 100644
index 00000000..05d1cb95
--- /dev/null
+++ b/man/v1.2.4/nng_msg_header_trim.3.html
@@ -0,0 +1,110 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_header_trim(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_header_trim(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_header_trim - remove data from start of message header</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_trim</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_trim_u16</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-o">*</span><span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_trim_u32</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-o">*</span><span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_header_trim_u64</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_header_trim()</code> family of functions remove
+data from the start of the header of message <em>msg</em>.
+The first function removes <em>size</em> bytes.
+The remaining functions removes 2, 4, or 8 bytes, and stores them in the
+value (such as <em>val32</em>),
+after converting them from network-byte order (big-endian) to native
+byte order.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The message header is too short to remove the requested data.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_header.3.html">nng_msg_header(3)</a>,
+<a href="nng_msg_header_append.3.html">nng_msg_header_append(3)</a>,
+<a href="nng_msg_header_chop.3.html">nng_msg_header_chop(3)</a>,
+<a href="nng_msg_header_insert.3.html">nng_msg_header_insert(3)</a>,
+<a href="nng_msg_header_len.3.html">nng_msg_header_len(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_insert.3.html b/man/v1.2.4/nng_msg_insert.3.html
new file mode 100644
index 00000000..537c3f76
--- /dev/null
+++ b/man/v1.2.4/nng_msg_insert.3.html
@@ -0,0 +1,124 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_insert(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_insert(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_insert - prepend to message body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_insert</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_insert</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_insert</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_insert</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_insert()</code> family of functions prepends data to
+the front of the body of message <em>msg</em>, reallocating it if necessary.
+The first function prepends <em>size</em> bytes, copying them from <em>val</em>.
+The remaining functions prepend the specified value (such as <em>val32</em>)
+in network-byte order (big-endian).</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+These functions make use of pre-allocated &#8220;headroom&#8221; 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 capability.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_append.3.html">nng_msg_append(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_chop.3.html">nng_msg_chop(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_msg_trim.3.html">nng_msg_trim(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_len.3.html b/man/v1.2.4/nng_msg_len.3.html
new file mode 100644
index 00000000..eb1fb3de
--- /dev/null
+++ b/man/v1.2.4/nng_msg_len.3.html
@@ -0,0 +1,86 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_len(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_len(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_len - return message body length</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">size_t</span> <span class="tok-nf">nng_msg_len</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_len()</code> returns the length of the body of message <em>msg</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Length of message body.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_realloc.3.html b/man/v1.2.4/nng_msg_realloc.3.html
new file mode 100644
index 00000000..2f0a5506
--- /dev/null
+++ b/man/v1.2.4/nng_msg_realloc.3.html
@@ -0,0 +1,138 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_realloc(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_realloc(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_realloc - reallocate a message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_realloc</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_realloc()</code> function re-allocates a message so that it has
+a body of length <em>size</em>.
+This message attempts to avoid extra allocations,
+and will reuse the existing memory when possible.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+One way to further reduce message allocations is to allocate a message
+larger than needed, then use this function or
+<a href="nng_msg_chop.3.html"><code>nng_msg_chop()</code></a> 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 <a href="nng_msg_append.3.html"><code>nng_msg_append()</code></a>
+no actual memory allocations need to take place.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to reallocate a message.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_append.3.html">nng_msg_append(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_chop.3.html">nng_msg_chop(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_insert.3.html">nng_msg_insert(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_trim.3.html">nng_msg_trim(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_set_pipe.3.html b/man/v1.2.4/nng_msg_set_pipe.3.html
new file mode 100644
index 00000000..0bcee295
--- /dev/null
+++ b/man/v1.2.4/nng_msg_set_pipe.3.html
@@ -0,0 +1,103 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_set_pipe(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_set_pipe(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_set_pipe - set pipe for message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_msg_set_pipe</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_set_pipe()</code> sets the pipe associated with message <em>m</em> to <em>p</em>.
+This is most often useful when used with protocols that support directing
+a message to a specific peer.
+For example the <a href="nng_pair.7.html"><em>pair</em></a> version 1 protocol can do
+this when <code>NNG_OPT_PAIR1_POLY</code> mode is set.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not all protocols support overriding the destination pipe.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_get_pipe.3.html">nng_msg_get_pipe(3)</a>,
+<a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msg_trim.3.html b/man/v1.2.4/nng_msg_trim.3.html
new file mode 100644
index 00000000..15243220
--- /dev/null
+++ b/man/v1.2.4/nng_msg_trim.3.html
@@ -0,0 +1,111 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msg_trim(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msg_trim(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msg_trim - remove data from start of message body</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_trim</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_trim_u16</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint16_t</span> <span class="tok-o">*</span><span class="tok-n">val16</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_trim_u32</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint32_t</span> <span class="tok-o">*</span><span class="tok-n">val32</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_msg_trim_u64</span><span class="tok-p">(</span><span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">val64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msg_trim()</code> family of functions removes data from
+the start of the body of message <em>msg</em>.
+The first function removes <em>size</em> bytes.
+The remaining functions remove 2, 4, or 8 bytes, and stores them in the value
+(such as <em>val32</em>),
+after converting them from network-byte order (big-endian) to native
+byte order.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The message body is too short to remove the requested data.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_msg_append.3.html">nng_msg_append(3)</a>,
+<a href="nng_msg_body.3.html">nng_msg_body(3)</a>,
+<a href="nng_msg_chop.3.html">nng_msg_chop(3)</a>,
+<a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_msg_insert.3.html">nng_msg_insert(3)</a>,
+<a href="nng_msg_len.3.html">nng_msg_len(3)</a>,
+<a href="nng_msg_realloc.3.html">nng_msg_realloc(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_msleep.3supp.html b/man/v1.2.4/nng_msleep.3supp.html
new file mode 100644
index 00000000..aef33631
--- /dev/null
+++ b/man/v1.2.4/nng_msleep.3supp.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_msleep(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_msleep(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_msleep - sleep milliseconds</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_msleep</span><span class="tok-p">(</span><span class="tok-n">nng_duration</span> <span class="tok-n">msec</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_msleep()</code> blocks the caller for at least <em>msec</em> milliseconds.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function may block for longer than requested.
+The actual wait time is determined by the capabilities of the
+underlying system.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sleep_aio.3.html">nng_sleep_aio(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_clock.3supp.html">nng_clock(3supp)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_mtx_alloc.3supp.html b/man/v1.2.4/nng_mtx_alloc.3supp.html
new file mode 100644
index 00000000..cf276072
--- /dev/null
+++ b/man/v1.2.4/nng_mtx_alloc.3supp.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_mtx_alloc(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_mtx_alloc(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_mtx_alloc - allocate mutex</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_mtx</span> <span class="tok-n">nng_mtx</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_mtx_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_mtx</span> <span class="tok-o">**</span><span class="tok-n">mtxp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_mtx_alloc()</code> function allocates mutex and returns it in <em>mtxp</em>.</p>
+</div>
+<div class="paragraph">
+<p>The mutex objects created by this function are suitable only for
+simple lock and unlock operations, and are not recursive.
+Every effort has been made to use light-weight underlying primitives when available.</p>
+</div>
+<div class="paragraph">
+<p>Mutex (mutual exclusion) objects can be thought of as binary semaphores,
+where only a single thread of execution is permitted to &#8220;own&#8221; the semaphore.</p>
+</div>
+<div class="paragraph">
+<p>Furthermore, a mutex can only be unlocked by the thread that locked it.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng_mtx_free.3supp.html">nng_mtx_free(3supp)</a>,
+<a href="nng_mtx_lock.3supp.html">nng_mtx_lock(3supp)</a>,
+<a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock(3supp)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_mtx_free.3supp.html b/man/v1.2.4/nng_mtx_free.3supp.html
new file mode 100644
index 00000000..25db0925
--- /dev/null
+++ b/man/v1.2.4/nng_mtx_free.3supp.html
@@ -0,0 +1,86 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_mtx_free(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_mtx_free(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_mtx_free - free mutex</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_mtx_free</span><span class="tok-p">(</span><span class="tok-n">nng_mtx</span> <span class="tok-o">*</span><span class="tok-n">mtx</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_mtx_free()</code> function frees the mutex <em>mtx</em>.
+The mutex must not be locked when this function is called.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_mtx_lock.3supp.html b/man/v1.2.4/nng_mtx_lock.3supp.html
new file mode 100644
index 00000000..c348a6e5
--- /dev/null
+++ b/man/v1.2.4/nng_mtx_lock.3supp.html
@@ -0,0 +1,131 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_mtx_lock(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_mtx_lock(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_mtx_lock - lock mutex</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_mtx_lock</span><span class="tok-p">(</span><span class="tok-n">nng_mtx</span> <span class="tok-o">*</span><span class="tok-n">mtx</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_mtx_lock()</code> acquires exclusive ownership of the mutex <em>mtx</em>.
+If the lock is already owned, this function will wait until the current
+owner releases it with <a href="nng_mtx_unlock.3supp.html"><code>nng_mtx_unlock()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>If multiple threads are waiting for the lock, the order of acquisition
+is not specified.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+A mutex can <em>only</em> be unlocked by the thread that locked it.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Mutex locks are <em>not</em> recursive; attempts to reacquire the
+same mutex may result in deadlock or aborting the current program.
+It is a programming error for the owner of a mutex to attempt to
+reacquire it.
+</td>
+</tr>
+</table>
+</div>
+<div class="sidebarblock">
+<div class="content">
+<div class="paragraph">
+<p><em>nng</em> offers neither a &#8220;trylock&#8221; operation, nor recursive mutexes.
+This is by design, as <em>nng</em> itself does not use such things,
+and most often the need for them is the result of poor design.
+If such capabilities are needed, they may be synthesized fairly
+easily from mutexes and condition variables.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_mtx_unlock.3supp.html">nng_mtx_unlock(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_mtx_unlock.3supp.html b/man/v1.2.4/nng_mtx_unlock.3supp.html
new file mode 100644
index 00000000..412002cc
--- /dev/null
+++ b/man/v1.2.4/nng_mtx_unlock.3supp.html
@@ -0,0 +1,101 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_mtx_unlock(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_mtx_unlock(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_mtx_unlock - unlock mutex</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_mtx_unlock</span><span class="tok-p">(</span><span class="tok-n">nng_mtx</span> <span class="tok-o">*</span><span class="tok-n">mtx</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_mtx_unlock()</code> relinquishes ownership of the mutex <em>mtx</em> that
+was previously acquired via <a href="nng_mtx_lock.3supp.html"><code>nng_mtx_lock()</code></a>.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+A mutex can <em>only</em> be unlocked by the thread that locked it.
+Attempting to unlock a mutex that is not owned by the caller will result
+in undefined behavior.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_mtx_lock.3supp.html">nng_mtx_lock(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_options.5.html b/man/v1.2.4/nng_options.5.html
new file mode 100644
index 00000000..c556462d
--- /dev/null
+++ b/man/v1.2.4/nng_options.5.html
@@ -0,0 +1,588 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_options(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_options(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_generic_options">Generic Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_options - socket, dialer, listener, and pipe options</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-cp">#define NNG_OPT_SOCKNAME &quot;socket-name&quot;</span>
+<span class="tok-cp">#define NNG_OPT_RAW &quot;raw&quot;</span>
+<span class="tok-cp">#define NNG_OPT_PROTO &quot;protocol&quot;</span>
+<span class="tok-cp">#define NNG_OPT_PROTONAME &quot;protocol-name&quot;</span>
+<span class="tok-cp">#define NNG_OPT_PEER &quot;peer&quot;</span>
+<span class="tok-cp">#define NNG_OPT_PEERNAME &quot;peer-name&quot;</span>
+<span class="tok-cp">#define NNG_OPT_RECVBUF &quot;recv-buffer&quot;</span>
+<span class="tok-cp">#define NNG_OPT_SENDBUF &quot;send-buffer&quot;</span>
+<span class="tok-cp">#define NNG_OPT_RECVFD &quot;recv-fd&quot;</span>
+<span class="tok-cp">#define NNG_OPT_SENDFD &quot;send-fd&quot;</span>
+<span class="tok-cp">#define NNG_OPT_RECVTIMEO &quot;recv-timeout&quot;</span>
+<span class="tok-cp">#define NNG_OPT_SENDTIMEO &quot;send-timeout&quot;</span>
+<span class="tok-cp">#define NNG_OPT_LOCADDR &quot;local-address&quot;</span>
+<span class="tok-cp">#define NNG_OPT_REMADDR &quot;remote-address&quot;</span>
+<span class="tok-cp">#define NNG_OPT_URL &quot;url&quot;</span>
+<span class="tok-cp">#define NNG_OPT_MAXTTL &quot;ttl-max&quot;</span>
+<span class="tok-cp">#define NNG_OPT_RECVMAXSZ &quot;recv-size-max&quot;</span>
+<span class="tok-cp">#define NNG_OPT_RECONNMINT &quot;reconnect-time-min&quot;</span>
+<span class="tok-cp">#define NNG_OPT_RECONNMAXT &quot;reconnect-time-max&quot;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This page documents the various standard options that can be set or
+retrieved on objects in the <em>nng</em> library.</p>
+</div>
+<div class="paragraph">
+<p>Sockets (<a href="nng_socket.5.html"><code>nng_socket</code></a> objects) use the functions
+<a href="nng_getopt.3.html"><code>nng_getopt()</code></a>
+and <a href="nng_setopt.3.html"><code>nng_setopt()</code></a> to set and retrieve option values.</p>
+</div>
+<div class="paragraph">
+<p>Dialers (<a href="nng_dialer.5.html"><code>nng_dialer</code></a> objects) use the functions
+<a href="nng_dialer_getopt.3.html"><code>nng_dialer_getopt()</code></a> and
+<a href="nng_dialer_setopt.3.html"><code>nng_dialer_setopt()</code></a> to set and retrieve option
+values.</p>
+</div>
+<div class="paragraph">
+<p>Listeners (<a href="nng_listener.5.html"><code>nng_listener</code></a> objects) use the functions
+<a href="nng_listener_getopt.3.html"><code>nng_listener_getopt()</code></a>
+and <a href="nng_listener_setopt.3.html"><code>nng_listener_setopt()</code></a> to set and
+retrieve option values.</p>
+</div>
+<div class="paragraph">
+<p>Pipes (<a href="nng_pipe.5.html"><code>nng_pipe</code></a> objects) can only retrieve option values using
+the <a href="nng_pipe_getopt.3.html"><code>nng_pipe_getopt()</code></a> function.</p>
+</div>
+<div class="paragraph">
+<p>Other object types may have additional methods to access these options.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="sect2">
+<h3 id="_generic_options">Generic Options</h3>
+<div class="paragraph">
+<p>In the following list of options, the name of the option is supplied,
+along with the data type of the underlying value.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div id="NNG_OPT_LOCADDR" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_LOCADDR</code></dt>
+<dd>
+<p>(<a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>)
+This read-only option may be used on listeners, dialers and connected pipes, and
+represents the local address used for communication.
+NOTE: Not all transports support this option, and some transports may support it on
+listeners but not dialers.</p>
+<div class="paragraph">
+<p>When used on a TCP dialer, this option is used to configure the source IP
+address that will be used when initiating outgoing connections.
+The specific port number will be ignored, however, and the system will
+choose a random ephemeral port instead.</p>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_RAW" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_RAW</code></dt>
+<dd>
+<p>
+
+(<code>bool</code>)
+This read-only option indicates whether the socket is in &#8220;raw&#8221; mode.
+If <code>true</code>, the socket is in &#8220;raw&#8221; mode, and if <code>false</code> the socket is
+in &#8220;cooked&#8221; mode.</p>
+<div class="paragraph">
+<p>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 &#8220;cooked&#8221; mode a <a href="nng_rep.7.html"><em>rep</em></a> socket would
+automatically copy message headers from a received message to the corresponding
+reply, whereas in &#8220;raw&#8221; mode this is not done.)
+See <a href="nng.7.html#raw_mode">Raw Mode</a> for more details.</p>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_RECONNMINT" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_RECONNMINT</code></dt>
+<dd>
+<p>
+(<a href="nng_duration.5.html"><code>nng_duration</code></a>)
+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.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_RECONNMAXT" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_RECONNMAXT</code></dt>
+<dd>
+<p>
+
+(<a href="nng_duration.5.html"><code>nng_duration</code></a>)
+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 <code>NNG_OPT_RECONNMINT</code>,
+and grow exponentially, until it reaches this value.
+If this value is zero, then no exponential
+back-off between connection attempts is done, and each attempt will wait
+the time specified by <code>NNG_OPT_RECONNMINT</code>.
+This can be set on a socket, but it can also be overridden on an individual
+dialer.
+The option is irrelevant for listeners.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_RECVBUF" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_RECVBUF</code></dt>
+<dd>
+<p>
+
+(<code>int</code>)
+This is the depth of the socket&#8217;s receive buffer as a number of messages.
+Messages received by a transport may be buffered until the application
+has accepted them for delivery.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_RECVFD" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_RECVFD</code></dt>
+<dd>
+<p>
+
+
+(<code>int</code>)
+This read-only option is used to obtain an integer file descriptor suitable
+for use with
+<a href="http://pubs.opengroup.org/onlinepubs/7908799/xsh/poll.html"><code>poll()</code></a>,
+<a href="http://pubs.opengroup.org/onlinepubs/7908799/xsh/select.html"><code>select()</code></a>,
+(or on Windows systems
+<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms741669(v=vs.85).aspx"><code>WSAPoll()</code></a>)
+and similar functions.
+This descriptor will be <strong>readable</strong> when a message is available for receiving
+on the socket.
+When no message is ready for receiving, then this file descriptor will <strong>not</strong>
+be readable.</p>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Applications should never attempt to read or write to the
+returned file descriptor.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This option is incompatible with
+<a href="nng_ctx.5.html"><code>nng_ctx</code></a> contexts and should not be used on a socket
+where they are in use.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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 <a href="nng_aio_alloc.3.html"><code>nng_aio_alloc()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_RECVMAXSZ" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_RECVMAXSZ</code></dt>
+<dd>
+<p>
+(<code>size_t</code>)
+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.</p>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Applications on hostile networks should set this to a non-zero
+value to prevent denial-of-service attacks.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Some transports may have further message size restrictions.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_RECVTIMEO" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_RECVTIMEO</code></dt>
+<dd>
+<p>
+
+(<a href="nng_duration.5.html"><code>nng_duration</code></a>)
+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 <code>NNG_ETIMEDOUT</code>.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_REMADDR" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_REMADDR</code></dt>
+<dd>
+<p>(<a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>)
+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.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_SENDBUF" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_SENDBUF</code></dt>
+<dd>
+<p>
+
+(<code>int</code>)
+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.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not all protocols support buffering sent messages;
+generally multicast protocols like <a href="nng_pub.7.html"><em>pub</em></a> will
+simply discard messages when they cannot be delivered immediately.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_SENDFD" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_SENDFD</code></dt>
+<dd>
+<p>
+
+
+(<code>int</code>)
+This read-only option is used to obtain an integer file descriptor suitable
+for use with
+<a href="http://pubs.opengroup.org/onlinepubs/7908799/xsh/poll.html"><code>poll()</code></a>,
+<a href="http://pubs.opengroup.org/onlinepubs/7908799/xsh/select.html"><code>select()</code></a>,
+(or on Windows systems
+<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms741669(v=vs.85).aspx"><code>WSAPoll()</code></a>)
+and similar functions.</p>
+<div class="paragraph">
+<p>This descriptor will be <strong>readable</strong> 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 <strong>not</strong> be readable.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Applications should never attempt to read or write to the
+returned file descriptor; use should be limited to polling system calls only.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This option is incompatible with
+<a href="nng_ctx.5.html"><code>nng_ctx</code></a> contexts and should not be used on a socket
+where they are in use.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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 <a href="nng_aio_alloc.3.html"><code>nng_aio_alloc()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_SENDTIMEO" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_SENDTIMEO</code></dt>
+<dd>
+<p>
+
+(<a href="nng_duration.5.html"><code>nng_duration</code></a>)
+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 <code>NNG_ETIMEDOUT</code>.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_SOCKNAME" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_SOCKNAME</code></dt>
+<dd>
+<p>
+(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
+<code>NUL</code> byte.
+The value is intended for application use, and is not used for anything
+in the library itself.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_MAXTTL" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_MAXTTL</code></dt>
+<dd>
+<p>(<code>int</code>)
+
+This is the maximum number of &#8220;hops&#8221; a message may traverse across
+a <a href="nng_device.3.html"><code>nng_device()</code></a> forwarders.
+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.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Not all protocols support this option.
+Those that do generally have a default value of 8.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Each node along a forwarding path may have its 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.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_URL" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_URL</code></dt>
+<dd>
+<p>
+
+(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.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Some transports will canonify URLs before returning them to the
+application.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_PROTO" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_PROTO</code></dt>
+<dd>
+<p>(<code>int</code>)
+This read-only option is used to obtain the 16-bit number for the socket&#8217;s protocol.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_PEER" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_PEER</code></dt>
+<dd>
+<p>(<code>int</code>)
+This read-only option is used to obtain the 16-bit number of the
+peer protocol for the socket.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_PROTONAME" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_PROTONAME</code></dt>
+<dd>
+<p>(string)
+This read-only option is used to obtain the name of the socket&#8217;s protocol.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_PEERNAME" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_PEERNAME</code></dt>
+<dd>
+<p>(string)
+This read-only option is used to obtain the name of the peer protocol for
+the socket.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_getopt.3.html">nng_dialer_getopt(3)</a>,
+<a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a>,
+<a href="nng_getopt.3.html">nng_getopt(3)</a>,
+<a href="nng_listener_getopt.3.html">nng_listener_getopt(3)</a>,
+<a href="nng_listener_setopt.3.html">nng_listener_setopt(3)</a>,
+<a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a>,
+<a href="nng_setopt.3.html">nng_setopt(3)</a>,
+<a href="nng_ipc_options.5.html">nng_ipc_options(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng_tls_options.5.html">nng_tls_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_opts_parse.3supp.html b/man/v1.2.4/nng_opts_parse.3supp.html
new file mode 100644
index 00000000..5d4a4824
--- /dev/null
+++ b/man/v1.2.4/nng_opts_parse.3supp.html
@@ -0,0 +1,298 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_opts_parse(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_opts_parse(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_option_specification">Option Specification</a></li>
+<li><a href="#_long_options">Long Options</a></li>
+<li><a href="#_short_options">Short Options</a></li>
+<li><a href="#_prefix_matching">Prefix Matching</a></li>
+</ul>
+</li>
+<li><a href="#_example">EXAMPLE</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_opts_parse - parse command line options</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/options.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_optspec</span> <span class="tok-p">{</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">o_name</span><span class="tok-p">;</span> <span class="tok-c1">// Long style name (may be NULL for short only)</span>
+ <span class="tok-kt">int</span> <span class="tok-n">o_short</span><span class="tok-p">;</span> <span class="tok-c1">// Short option (no clustering!)</span>
+ <span class="tok-kt">int</span> <span class="tok-n">o_val</span><span class="tok-p">;</span> <span class="tok-c1">// Value stored on a good parse (&gt;0)</span>
+ <span class="tok-kt">bool</span> <span class="tok-n">o_arg</span><span class="tok-p">;</span> <span class="tok-c1">// Option takes an argument if true</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_optspec</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_opts_parse</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">argc</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-k">const</span> <span class="tok-o">*</span><span class="tok-n">argv</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_optspec</span> <span class="tok-o">*</span><span class="tok-n">spec</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">arg</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">idx</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_opts_parse()</code> is function is a supplemental function intended to
+facilitate parsing command line arguments.
+This function exists largely to stand in for <code>getopt()</code> from POSIX
+systems, but it is available everywhere that <em>NNG</em> is, and it includes
+some capabilities missing from <code>getopt()</code>.</p>
+</div>
+<div class="paragraph">
+<p>The function parses arguments from <code>main()</code> (using <em>argc</em> and <em>argv</em>),
+starting at the index referenced by <em>idx</em>.
+(New invocations typically set the value pointed to by <em>idx</em> to 1.)</p>
+</div>
+<div class="paragraph">
+<p>Options are parsed as specified by <em>spec</em> (see <a href="#_option_specification">Option Specification</a>.)
+The value of the parsed option will be stored at the address indicated by
+<em>val</em>, and the value of <em>idx</em> will be incremented to reflect the next
+option to parse.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+For using this to parse command-line like strings that do not include
+the command name itself, set the value referenced by <em>idx</em> to zero
+instead of one.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If the option had an argument, a pointer to that is returned at the address
+referenced by <em>arg</em>.</p>
+</div>
+<div class="paragraph">
+<p>This function should be called repeatedly, until it returns either -1
+(indicating the end of options is reached) or a non-zero error code is
+returned.</p>
+</div>
+<div class="sect2">
+<h3 id="_option_specification">Option Specification</h3>
+<div class="paragraph">
+<p>The calling program must first create an array of <code>nng_optspec</code> structures
+describing the options to be supported.
+This structure has the following members:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>o_name</code></dt>
+<dd>
+<p>The long style name for the option, such as "verbose".
+This will be parsed on the command line when it is prefixed with two dashes.
+It may be <code>NULL</code> if only a short option is to be supported.</p>
+</dd>
+<dt class="hdlist1"><code>o_short</code></dt>
+<dd>
+<p>This is a single letter (at present only ASCII letters are supported).
+These options appear as just a single letter, and are prefixed with a single dash on the command line.
+The use of a slash in lieu of the dash is <em>not</em> supported, in order to avoid confusion with path name arguments.
+This value may be set to 0 if no short option is needed.</p>
+</dd>
+<dt class="hdlist1"><code>o_val</code></dt>
+<dd>
+<p>This is a numeric value that is unique to this option.
+This value is assigned by the application program, and must be non-zero
+for a valid option.
+If this is zero, then it indicates the end of the specifications, and the
+rest of this structure is ignored.
+The value will be returned to the caller in <em>val</em> by <code>nng_opts_parse()</code> when
+this option is parsed from the command line.</p>
+</dd>
+<dt class="hdlist1"><code>o_arg</code></dt>
+<dd>
+<p>This value should be set to <code>true</code> if the option should take an argument.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_long_options">Long Options</h3>
+<div class="paragraph">
+<p>Long options are parsed from the <em>argv</em> array, and are indicated when
+the element being scanned starts with two dashes.
+For example, the "verbose" option would be specified as <code>--verbose</code> on
+the command line.
+If a long option takes an argument, it can either immediately follow
+the option as the next element in <em>argv</em>, or it can be appended to
+the option, separated from the option by an equals sign (<code>=</code>) or a
+colon (<code>:</code>).</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_short_options">Short Options</h3>
+<div class="paragraph">
+<p>Short options appear by themselves in an <em>argv</em> element, prefixed by a
+dash (<code>-</code>).
+If the short option takes an argument, it can either be appended in the
+same element of <em>argv</em>, or may appear in the next <em>argv</em> element.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Option clustering, where multiple options can be crammed together in
+a single <em>argv</em> element, is not supported by this function (yet).
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_prefix_matching">Prefix Matching</h3>
+<div class="paragraph">
+<p>When using long options, the parser will match if it is equal to a prefix
+of the <code>o_name</code> member of a option specification, provided that it do so
+unambiguously (meaning it must not match any other option specification.)</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_example">EXAMPLE</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The following program fragment demonstrates this function.</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span> <span class="tok-k">enum</span> <span class="tok-p">{</span> <span class="tok-n">OPT_LOGFILE</span><span class="tok-p">,</span> <span class="tok-n">OPT_VERBOSE</span> <span class="tok-p">};</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">logfile</span><span class="tok-p">;</span> <span class="tok-c1">// options to be set</span>
+ <span class="tok-kt">bool</span> <span class="tok-n">verbose</span><span class="tok-p">;</span>
+
+ <span class="tok-k">static</span> <span class="tok-n">nng_optspec</span> <span class="tok-n">specs</span><span class="tok-p">[]</span> <span class="tok-o">=</span> <span class="tok-p">{</span>
+ <span class="tok-p">{</span>
+ <span class="tok-p">.</span><span class="tok-n">o_name</span> <span class="tok-o">=</span> <span class="tok-s">&quot;logfile&quot;</span><span class="tok-p">,</span>
+ <span class="tok-p">.</span><span class="tok-n">o_short</span> <span class="tok-o">=</span> <span class="tok-sc">&#39;D&#39;</span><span class="tok-p">,</span>
+ <span class="tok-p">.</span><span class="tok-n">o_val</span> <span class="tok-o">=</span> <span class="tok-n">OPT_LOGFILE</span><span class="tok-p">,</span>
+ <span class="tok-p">.</span><span class="tok-n">o_arg</span> <span class="tok-o">=</span> <span class="tok-nb">true</span><span class="tok-p">,</span>
+ <span class="tok-p">},</span> <span class="tok-p">{</span>
+ <span class="tok-p">.</span><span class="tok-n">o_name</span> <span class="tok-o">=</span> <span class="tok-s">&quot;verbose&quot;</span><span class="tok-p">,</span>
+ <span class="tok-p">.</span><span class="tok-n">o_short</span> <span class="tok-o">=</span> <span class="tok-sc">&#39;V&#39;</span><span class="tok-p">,</span>
+ <span class="tok-p">.</span><span class="tok-n">o_val</span> <span class="tok-o">=</span> <span class="tok-n">OPT_VERBOSE</span><span class="tok-p">,</span>
+ <span class="tok-p">.</span><span class="tok-n">o_arg</span> <span class="tok-o">=</span> <span class="tok-nb">false</span><span class="tok-p">,</span>
+ <span class="tok-p">},</span> <span class="tok-p">{</span>
+ <span class="tok-p">.</span><span class="tok-n">o_val</span> <span class="tok-o">=</span> <span class="tok-mi">0</span><span class="tok-p">;</span> <span class="tok-c1">// Terminate array</span>
+ <span class="tok-p">}</span>
+ <span class="tok-p">};</span>
+
+ <span class="tok-k">for</span> <span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">idx</span> <span class="tok-o">=</span> <span class="tok-mi">1</span><span class="tok-p">;;)</span> <span class="tok-p">{</span>
+ <span class="tok-kt">int</span> <span class="tok-n">rv</span><span class="tok-p">,</span> <span class="tok-n">opt</span><span class="tok-p">;</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">;</span>
+ <span class="tok-n">rv</span> <span class="tok-o">=</span> <span class="tok-n">nng_opts_parse</span><span class="tok-p">(</span><span class="tok-n">argc</span><span class="tok-p">,</span> <span class="tok-n">argv</span><span class="tok-p">,</span> <span class="tok-n">specs</span><span class="tok-p">,</span> <span class="tok-o">&amp;</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-o">&amp;</span><span class="tok-n">arg</span><span class="tok-p">,</span> <span class="tok-o">&amp;</span><span class="tok-n">idx</span><span class="tok-p">);</span>
+ <span class="tok-k">if</span> <span class="tok-p">(</span><span class="tok-n">rv</span> <span class="tok-o">!=</span> <span class="tok-mi">0</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-k">break</span><span class="tok-p">;</span>
+ <span class="tok-p">}</span>
+ <span class="tok-k">switch</span> <span class="tok-p">(</span><span class="tok-n">opt</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-k">case</span> <span class="tok-nl">OPT_LOGFILE</span><span class="tok-p">:</span>
+ <span class="tok-n">logfile</span> <span class="tok-o">=</span> <span class="tok-n">arg</span><span class="tok-p">;</span>
+ <span class="tok-k">break</span><span class="tok-p">;</span>
+ <span class="tok-k">case</span> <span class="tok-nl">OPT_VERBOSE</span><span class="tok-p">:</span>
+ <span class="tok-n">verbose</span> <span class="tok-o">=</span> <span class="tok-nb">true</span><span class="tok-p">;</span>
+ <span class="tok-k">break</span><span class="tok-p">;</span>
+ <span class="tok-p">}</span>
+ <span class="tok-p">}</span>
+ <span class="tok-k">if</span> <span class="tok-p">(</span><span class="tok-n">rv</span> <span class="tok-o">!=</span> <span class="tok-o">-</span><span class="tok-mi">1</span><span class="tok-p">)</span> <span class="tok-p">{</span>
+ <span class="tok-n">printf</span><span class="tok-p">(</span><span class="tok-s">&quot;Options error: %s</span><span class="tok-se">\n</span><span class="tok-s">&quot;</span><span class="tok-p">,</span> <span class="tok-n">nng_strerror</span><span class="tok-p">(</span><span class="tok-n">rv</span><span class="tok-p">));</span>
+ <span class="tok-n">exit</span><span class="tok-p">(</span><span class="tok-mi">1</span><span class="tok-p">);</span>
+ <span class="tok-p">}</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 if an option parsed correctly, -1 if
+no more options are available to be parsed, or an error number otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EAMBIGUOUS</code>
+</td>
+<td class="hdlist2">
+<p>Parsed option matches more than one specification.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOARG</code>
+</td>
+<td class="hdlist2">
+<p>Option requires an argument, but one is not present.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid (unknown) argument is present.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pair.7.html b/man/v1.2.4/nng_pair.7.html
new file mode 100644
index 00000000..a7ca4227
--- /dev/null
+++ b/man/v1.2.4/nng_pair.7.html
@@ -0,0 +1,223 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pair(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pair(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_polyamorous_mode">Polyamorous Mode</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pair - pair protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="title">Version 0</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pair0/pair.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Version 1</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pair1/pair.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>pair</em> protocol implements a peer-to-peer pattern, where
+relationships between peers are one-to-one.</p>
+</div>
+<div class="paragraph">
+<p>Version 1 of this protocol supports an optional <em>polyamorous</em> mode where a
+peer can maintain multiple partnerships.
+Using this mode requires some additional sophistication in the application.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_pair_open.3.html"><code>nng_pair_open()</code></a> functions create a <em>pair</em> socket.</p>
+</div>
+<div class="paragraph">
+<p>Normally, this pattern will block when attempting to send a message if
+no peer is able to receive the message.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Even though this mode may appear to be "reliable", because back-pressure
+prevents discarding messages most of the time, there are topologies involving
+<em>devices</em> (see <a href="nng_device.3.html"><code>nng_device()</code></a>) or raw mode sockets
+(see <a href="nng_options.5.html#NNG_OPT_RAW"><code>NNG_OPT_RAW</code></a>) where
+messages may be discarded.
+Applications that require reliable delivery semantics should consider using
+<a href="nng_req.7.html"><em>req</em></a> sockets, or
+implement their own acknowledgment layer on top of <em>pair</em> sockets.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>In order to avoid head-of-line blocking conditions, <em>polyamorous</em> mode <em>pair</em>
+sockets (version 1 only) discard messages if they are unable to deliver them
+to a peer.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Version 0 is the legacy version of this protocol.
+It lacks any header
+information, and is suitable when building simple one-to-one topologies.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Use version 0 if you need to communicate with other implementations,
+including the legacy <a href="https://github.com/nanomsg/nanomsg">nanomsg</a> library or
+<a href="https://github.com/go-mangos/mangos">mangos</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Version 1 of the protocol offers improved protection against loops when
+used with <a href="nng_device.3.html"><code>nng_device()</code></a>.
+It also offers <em>polyamorous</em> mode for forming multiple partnerships
+on a single socket.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Version 1 of this protocol is considered experimental at this time.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_polyamorous_mode">Polyamorous Mode</h3>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>In <em>polyamorous</em> 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 outgoing message by setting the
+<a href="nng_pipe.5.html"><code>nng_pipe</code></a> to use for the outgoing message with
+the <a href="nng_msg_set_pipe.3.html"><code>nng_msg_set_pipe()</code></a> function.</p>
+</div>
+<div class="paragraph">
+<p>Most often the value of the outgoing pipe will be obtained from an incoming
+message using the <a href="nng_msg_get_pipe.3.html"><code>nng_msg_get_pipe()</code></a> function,
+such as when replying to an incoming message.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The following protocol-specific options are available.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_PAIR1_POLY</code></dt>
+<dd>
+<p>(<code>bool</code>, version 1 only) This option enables the use of <em>polyamorous</em> 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.</p>
+</dd>
+<dt class="hdlist1"><a href="nng_options.5.html#NNG_OPT_MAXTTL"><code>NNG_OPT_MAXTTL</code></a></dt>
+<dd>
+<p>(<code>int</code>, version 1 only). Maximum time-to-live.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>Version 0 of the pair protocol has no protocol-specific headers.</p>
+</div>
+<div class="paragraph">
+<p>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 conjunction with the
+<a href="nng_options.5.html#NNG_OPT_MAXTTL"><code>NNG_OPT_MAXTTL</code></a> 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.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pair_open.3.html">nng_pair_open(3)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pair_open.3.html b/man/v1.2.4/nng_pair_open.3.html
new file mode 100644
index 00000000..525bfc21
--- /dev/null
+++ b/man/v1.2.4/nng_pair_open.3.html
@@ -0,0 +1,123 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pair_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pair_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pair_open - create pair socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="title">Version 0</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pair0/pair.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pair0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pair0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Version 1</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pair1/pair.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pair1_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pair1_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pair0_open()</code> and <code>nng_pair1_open()</code> functions
+create a <a href="nng_pair.7.html"><em>pair</em></a> version 0 or version 1
+<a href="nng_socket.5.html">socket</a> and return it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_pair0_open_raw()</code> and <code>nng_pair1_open_raw()</code> functions
+create a <a href="nng_pair.7.html"><em>pair</em></a> version 0 or version 1
+<a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode and return it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_pair.7.html">nng_pair(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe.5.html b/man/v1.2.4/nng_pipe.5.html
new file mode 100644
index 00000000..4eb5680d
--- /dev/null
+++ b/man/v1.2.4/nng_pipe.5.html
@@ -0,0 +1,141 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#NNG_PIPE_INITIALIZER">Initialization</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe - communications pipe</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_pipe_s</span> <span class="tok-n">nng_pipe</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_pipe</code> is a handle to a &#8220;pipe&#8221;, which can be thought of as a single
+connection.
+(In most cases this is actually the case&#8201;&#8212;&#8201;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.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <code>nng_pipe</code> structure is always passed by value (both
+for input parameters and return values), and should be treated opaquely.
+Passing structures this way gives the compiler a chance to perform
+accurate type checks in functions passing values of this type.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Pipe objects are created by dialers (<a href="nng_dialer.5.html"><code>nng_dialer</code></a> objects)
+and listeners (<a href="nng_listener.5.html"><code>nng_listener</code></a> objects), which can be
+thought of as &#8220;owning&#8221; the pipe.</p>
+</div>
+<div class="paragraph">
+<p>Pipe objects may be destroyed by the
+<a href="nng_pipe_close.3.html"><code>nng_pipe_close()</code></a> function.
+They are also closed when their &#8220;owning&#8221; dialer or listener is closed,
+or when the remote peer closes the underlying connection.</p>
+</div>
+<div class="sect2">
+<h3 id="NNG_PIPE_INITIALIZER">Initialization</h3>
+<div class="paragraph">
+<p>A pipe may be initialized using the macro <code>NNG_PIPE_INITIALIZER</code>
+before it is opened, to prevent confusion with valid open pipes.</p>
+</div>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span> <span class="tok-o">=</span> <span class="tok-n">NNG_PIPE_INITIALIZER</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_get_pipe.3.html">nng_msg_get_pipe(3)</a>,
+<a href="nng_pipe_close.3.html">nng_pipe_close(3)</a>,
+<a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a>,
+<a href="nng_pipe_dialer.3.html">nng_pipe_dialer(3)</a>,
+<a href="nng_pipe_id.3.html">nng_pipe_id(3)</a>,
+<a href="nng_pipe_listener.3.html">nng_pipe_listener(3)</a>,
+<a href="nng_pipe_socket.3.html">nng_pipe_socket(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_close.3.html b/man/v1.2.4/nng_pipe_close.3.html
new file mode 100644
index 00000000..2542739c
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_close.3.html
@@ -0,0 +1,114 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_close(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_close(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_close - close pipe</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_close</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pipe_close()</code> function closes the supplied pipe, <em>p</em>.
+Messages that have been submitted for sending may be flushed or delivered,
+depending upon the transport.</p>
+</div>
+<div class="paragraph">
+<p>Further attempts to use the pipe after this call returns will result
+in <code>NNG_ECLOSED</code>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Pipes are automatically closed when their creator closes, or when the
+remote peer closes the underlying connection.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The pipe <em>p</em> is already closed or was never opened.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_dialer.3.html b/man/v1.2.4/nng_pipe_dialer.3.html
new file mode 100644
index 00000000..0a3c13c0
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_dialer.3.html
@@ -0,0 +1,90 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_dialer(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_dialer(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_dialer - return dialer that created pipe</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-n">nng_dialer</span> <span class="tok-nf">nng_pipe_dialer</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pipe_dialer()</code> function returns the <a href="nng_dialer.5.html"><code>nng_dialer</code></a>
+that created the pipe <em>p</em>.
+If the pipe was not created by a dialer, then the returned value will
+have an identifier (<a href="nng_dialer_id.3.html"><code>nng_dialer_id()</code></a>) of <code>-1</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the dialer that created the pipe, unless it was
+not created by a dialer, in which case a value initialized with
+<code>NNG_DIALER_INITIALIZER</code> will be returned.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_get.3.html b/man/v1.2.4/nng_pipe_get.3.html
new file mode 100644
index 00000000..18946e55
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_get.3.html
@@ -0,0 +1,283 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_get(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_get(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_get - get pipe option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_addr</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">sap</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_pipe_get()</code> functions are used to retrieve option values for
+the <a href="nng_pipe.5.html">pipe</a> <em>p</em>.
+The actual options that may be retrieved in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.
+Additionally some transport-specific options and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+All &#8220;options&#8221; on a pipe are read-only values.
+Modification of options may be done before the pipe is created using
+<a href="nng_listener_set.3.html"><code>nng_listener_set()</code></a> or
+<a href="nng_dialer_get.3.html"><code>nng_dialer_set()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Any option that is set on a dialer or listener will normally be retrievable
+from pipes created by that dialer or listener.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the pipe <em>p</em>.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_pipe_get()</code></dt>
+<dd>
+<p>This is untyped, and can be used to retrieve the value of any option.
+A pointer to a buffer to receive the value in <em>val</em>, and the size of the
+buffer shall be stored at the location referenced by <em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+size returned in <em>valszp</em> does not exceed the original buffer size.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_pipe_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time durations
+(<a href="nng_duration.5.html"><code>nng_duration</code></a>) in milliseconds, which are stored in
+<em>durp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_get_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_get_addr()</code></dt>
+<dd>
+<p>This function is used to retrieve an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+into <em>sap</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options
+related to identifiers, network numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>p</em> does not refer to an open pipe.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_set.3.html">nng_dialer_set(3)</a>
+<a href="nng_socket_get.3.html">nng_socket_get(3)</a>,
+<a href="nng_listener_set.3.html">nng_listener_set(3)</a>
+<a href="nng_msg_get_pipe.3.html">nng_msg_get_pipe(3)</a>
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_getopt.3.html b/man/v1.2.4/nng_pipe_getopt.3.html
new file mode 100644
index 00000000..529a5d83
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_getopt.3.html
@@ -0,0 +1,295 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_getopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_getopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_getopt - get pipe option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_sockaddr</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">sap</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_getopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_pipe_get.3.html">nng_pipe_get</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_pipe_getopt()</code> functions are used to retrieve option values for
+the <a href="nng_pipe.5.html">pipe</a> <em>p</em>.
+The actual options that may be retrieved in this way
+vary, and many are documented in <a href="nng_options.5.html">nng_options(5)</a>.
+Additionally some transport-specific options and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+All &#8220;options&#8221; on a pipe are read-only values.
+Modification of options may be done before the pipe is created using
+<a href="nng_listener_setopt.3.html"><code>nng_listener_setopt()</code></a> or
+<a href="nng_dialer_getopt.3.html"><code>nng_dialer_setopt()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Any option that is set on a dialer or listener will normally be retrievable
+from pipes created by that dialer or listener.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the pipe <em>p</em>.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_pipe_getopt()</code></dt>
+<dd>
+<p>This is untyped, and can be used to retrieve the value of any option.
+A pointer to a buffer to receive the value in <em>val</em>, and the size of the
+buffer shall be stored at the location referenced by <em>valszp</em>.<br>
+<br>
+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 referenced by <em>valszp</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+size returned in <em>valszp</em> does not exceed the original buffer size.<br>
+<br>
+It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_pipe_getopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_getopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_getopt_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time durations
+(<a href="nng_duration.5.html"><code>nng_duration</code></a>) in milliseconds, which are stored in
+<em>durp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_getopt_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_getopt_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_getopt_sockaddr()</code></dt>
+<dd>
+<p>This function is used to retrieve an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+into <em>sap</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_getopt_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_pipe_getopt_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options
+related to identifiers, network numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>p</em> does not refer to an open pipe.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a>
+<a href="nng_getopt.3.html">nng_getopt(3)</a>,
+<a href="nng_listener_setopt.3.html">nng_listener_setopt(3)</a>
+<a href="nng_msg_get_pipe.3.html">nng_msg_get_pipe(3)</a>
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_id.3.html b/man/v1.2.4/nng_pipe_id.3.html
new file mode 100644
index 00000000..e5ba535a
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_id.3.html
@@ -0,0 +1,103 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_id(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_id(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_id - return numeric pipe identifier</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_id</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pipe_id()</code> function returns a positive identifier for the pipe <em>p</em>,
+if it is valid.
+Otherwise it returns <code>-1</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+A pipe is considered valid if it was ever created by the socket.
+Pipes that are allocated on the stack or statically should be
+initialized with the macro
+<a href="nng_pipe.5.html#NNG_PIPE_INITIALIZER"><code>NNG_PIPE_INITIALIZER</code></a> to ensure that
+they cannot be confused with a valid pipe.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the positive value for the pipe identifier, or
+<code>-1</code> if the pipe is invalid.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_listener.3.html b/man/v1.2.4/nng_pipe_listener.3.html
new file mode 100644
index 00000000..ad92e049
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_listener.3.html
@@ -0,0 +1,90 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_listener(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_listener(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_listener - return listener that created pipe</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-n">nng_listener</span> <span class="tok-nf">nng_pipe_listener</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pipe_listener()</code> function returns the <a href="nng_listener.5.html"><code>nng_listener</code></a>
+that created the pipe <em>p</em>.
+If the pipe was not created by a listener, then the returned value will
+have an identifier (<a href="nng_listener_id.3.html"><code>nng_listener_id()</code></a>) of <code>-1</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the listener that created the pipe, unless it was
+not created by a listener, in which case a value initialized with
+<code>NNG_LISTENER_INITIALIZER</code> will be returned.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_notify.3.html b/man/v1.2.4/nng_pipe_notify.3.html
new file mode 100644
index 00000000..a11191b9
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_notify.3.html
@@ -0,0 +1,181 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_notify(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_notify(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_notify - register pipe notification callback</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">enum</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_PIPE_EV_ADD_PRE</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_PIPE_EV_ADD_POST</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_PIPE_EV_REM_POST</span><span class="tok-p">,</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_pipe_ev</span><span class="tok-p">;</span>
+
+<span class="tok-k">typedef</span> <span class="tok-nf">void</span> <span class="tok-p">(</span><span class="tok-o">*</span><span class="tok-n">nng_pipe_cb</span><span class="tok-p">)(</span><span class="tok-n">nng_pipe</span><span class="tok-p">,</span> <span class="tok-n">nng_pipe_ev</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pipe_notify</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_pipe_ev</span> <span class="tok-n">ev</span><span class="tok-p">,</span> <span class="tok-n">nng_pipe_cb</span> <span class="tok-n">cb</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pipe_notify()</code> function registers the callback function <em>cb</em>
+to be called whenever a <a href="nng_pipe.5.html">pipe</a> the pipe event specified by
+<em>ev</em> occurs on the socket <em>s</em>.
+The callback <em>cb</em> will be passed <em>arg</em> as its final argument.</p>
+</div>
+<div class="paragraph">
+<p>A different callback may be supplied for each event.
+Each event may have at most one callback registered.
+Registering a callback implicitly unregisters any previously registered.</p>
+</div>
+<div class="paragraph">
+<p>The following pipe events are supported:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_PIPE_EV_ADD_PRE</code></dt>
+<dd>
+<p>This event occurs after a connection and negotiation
+has completed, but before the pipe is added to the socket.
+If the pipe is closed (using <a href="nng_pipe_close.3.html"><code>nng_pipe_close()</code></a>) at
+this point, the socket will never see the pipe, and no further events will
+occur for the given pipe.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_PIPE_EV_ADD_POST</code></dt>
+<dd>
+<p>This event occurs after the pipe is fully added to
+the socket.
+Prior to this time, it is not possible to communicate over the pipe with
+the socket.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_PIPE_EV_REM_POST</code></dt>
+<dd>
+<p>This event occurs after the pipe has been removed
+from the socket.
+The underlying transport may be closed at this point, and it is not
+possible communicate using this pipe.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The callback <em>cb</em> may close a pipe for any reason by simply closing
+it using <a href="nng_pipe_close.3.html"><code>nng_pipe_close()</code></a>.
+This might be done before the pipe is added to the socket (during
+<code>NNG_PIPE_EV_ADD_PRE</code>), for example, if the remote peer is not authorized.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is possible to register the same <em>cb</em> and <em>arg</em> for different events
+by calling this function separately for different values of <em>ev</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function ignores invalid values for <em>ev</em>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pipe_close.3.html">nng_pipe_close(3)</a>,
+<a href="nng_pipe_getopt.3.html">nng_pipe_getopt(3)</a>,
+<a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pipe_socket.3.html b/man/v1.2.4/nng_pipe_socket.3.html
new file mode 100644
index 00000000..bbce7fa5
--- /dev/null
+++ b/man/v1.2.4/nng_pipe_socket.3.html
@@ -0,0 +1,99 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pipe_socket(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pipe_socket(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pipe_socket - return owning socket for pipe</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-n">nng_socket</span> <span class="tok-nf">nng_pipe_socket</span><span class="tok-p">(</span><span class="tok-n">nng_pipe</span> <span class="tok-n">p</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pipe_socket()</code> function returns the <a href="nng_socket.5.html"><code>nng_socket</code></a>
+that owns the pipe <em>p</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The returned socket may be closed or in the process of closing, in
+which case it will not be usable with other functions.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the socket that &#8220;owns&#8221; the pipe.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pipe.5.html">nng_pipe(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pub.7.html b/man/v1.2.4/nng_pub.7.html
new file mode 100644
index 00000000..b412a9b1
--- /dev/null
+++ b/man/v1.2.4/nng_pub.7.html
@@ -0,0 +1,129 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pub(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pub(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pub - publisher protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pubsub0/pub.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>pub</em> 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.</p>
+</div>
+<div class="paragraph">
+<p>The <em>pub</em> protocol is the publisher side, and the
+<a href="nng_sub.7.html"><em>sub</em></a> protocol is the subscriber side.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The topics that subscribers subscribe to is just the first part of
+the message body.
+Applications should construct their messages accordingly.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_pub_open.3.html"><code>nng_pub0_open()</code></a> functions create a publisher socket.
+This socket may be used to send messages, but is unable to receive them.
+Attempts to receive messages will result in <code>NNG_ENOTSUP</code>.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Only version 0 of this protocol is supported.
+(At the time of writing, no other versions of this protocol have been defined.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The <em>pub</em> protocol has no protocol-specific options.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>The <em>pub</em> protocol has no protocol-specific headers.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pub_open.3.html">nng_pub_open(3)</a>,
+<a href="nng_sub.7.html">nng_sub(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pub_open.3.html b/man/v1.2.4/nng_pub_open.3.html
new file mode 100644
index 00000000..d3b15010
--- /dev/null
+++ b/man/v1.2.4/nng_pub_open.3.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pub_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pub_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pub_open - create pub socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pubsub0/pub.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pub0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pub0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pub0_open()</code> function creates a <a href="nng_pub.7.html"><em>pub</em></a> version 0
+<a href="nng_socket.5.html">socket</a> and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_pub0_open_raw()</code> function creates a <a href="nng_pub.7.html"><em>pub</em></a> version 0
+<a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_pub.7.html">nng_pub(7)</a>,
+<a href="nng_sub.7.html">nng_sub(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pull.7.html b/man/v1.2.4/nng_pull.7.html
new file mode 100644
index 00000000..595cb81f
--- /dev/null
+++ b/man/v1.2.4/nng_pull.7.html
@@ -0,0 +1,115 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pull(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pull(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pull - pull protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pipeline0/pull.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>pull</em> protocol is one half of a pipeline pattern.
+The other half is the <a href="nng_push.7.html"><em>push</em></a> protocol.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_pull_open.3.html"><code>nng_pull0_open()</code></a> functions create a puller socket.
+This socket may be used to receive messages, but is unable to send them.
+Attempts to send messages will result in <code>NNG_ENOTSUP</code>.</p>
+</div>
+<div class="paragraph">
+<p>When receiving messages, the <em>pull</em> 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.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Only version 0 of this protocol is supported.
+(At the time of writing, no other versions of this protocol have been defined.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The <em>pull</em> protocol has no protocol-specific options.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>The <em>pull</em> protocol has no protocol-specific headers.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_pull_open.3.html">nng_pull_open(3)</a>,
+<a href="nng_push.7.html">nng_push(7)</a>,
+<a href="nng.7.html">nng(7)</a>,</p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_pull_open.3.html b/man/v1.2.4/nng_pull_open.3.html
new file mode 100644
index 00000000..048f7a02
--- /dev/null
+++ b/man/v1.2.4/nng_pull_open.3.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_pull_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_pull_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_pull_open - create pull socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pipeline0/pull.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pull0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_pull0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_pull0_open()</code> function creates a <a href="nng_pull.7.html"><em>pull</em></a> version 0
+<a href="nng_socket.5.html">socket</a> and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_pull0_open_raw()</code> function creates a <a href="nng_pull.7.html"><em>pull</em></a> version 0
+<a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_pull.7.html">nng_pull(7)</a>,
+<a href="nng_push.7.html">nng_push(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_push.7.html b/man/v1.2.4/nng_push.7.html
new file mode 100644
index 00000000..b8dde78a
--- /dev/null
+++ b/man/v1.2.4/nng_push.7.html
@@ -0,0 +1,131 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_push(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_push(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_push - push protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pipeline0/push.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>push</em> protocol is one half of a pipeline pattern.
+The other side is the <a href="nng_pull.7.html"><em>pull</em></a> protocol.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_push_open.3.html"><code>nng_push0_open()</code></a> 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 <code>NNG_ENOTSUP</code>.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 acknowledgment,
+applications that need reliable delivery are encouraged to consider the
+<a href="nng_req.7.html"><em>req</em></a> protocol instead.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Only version 0 of this protocol is supported.
+(At the time of writing, no other versions of this protocol have been defined.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The <em>push</em> protocol has no protocol-specific options.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>The <em>push</em> protocol has no protocol-specific headers.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_push_open.3.html">nng_push(3)</a>,
+<a href="nng_pull.7.html">nng_pull(7)</a>,
+<a href="nng_req.7.html">nng_req(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_push_open.3.html b/man/v1.2.4/nng_push_open.3.html
new file mode 100644
index 00000000..4cdc4c13
--- /dev/null
+++ b/man/v1.2.4/nng_push_open.3.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_push_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_push_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_push_open - create push socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pipeline0/push.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_push0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_push0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_push0_open()</code> function creates a <a href="nng_push.7.html"><em>push</em></a> version 0
+<a href="nng_socket.5.html">socket</a> and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_push0_open_raw()</code> function creates a <a href="nng_push.7.html"><em>push</em></a> version 0
+<a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_pull.7.html">nng_pull(7)</a>,
+<a href="nng_push.7.html">nng_push(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_random.3supp.html b/man/v1.2.4/nng_random.3supp.html
new file mode 100644
index 00000000..7e11ef8d
--- /dev/null
+++ b/man/v1.2.4/nng_random.3supp.html
@@ -0,0 +1,88 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_random(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_random(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_random - get random number</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">uint32_t</span> <span class="tok-nf">nng_random</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_random()</code> returns a random number.
+The value returned is suitable for use with cryptographic functions such as
+key generation.
+The value is obtained using platform specific cryptographically strong random
+number facilities when available.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>Random number.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_recv.3.html b/man/v1.2.4/nng_recv.3.html
new file mode 100644
index 00000000..b8270856
--- /dev/null
+++ b/man/v1.2.4/nng_recv.3.html
@@ -0,0 +1,219 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_recv(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_recv(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_recv - recv data</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_recv</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">sizep</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_recv()</code> receives a message.</p>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> is a bit mask that may contain any of the following values:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_FLAG_NONBLOCK</code></dt>
+<dd>
+<p>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 <em>s</em>, or any configured timer expires.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_FLAG_ALLOC</code></dt>
+<dd>
+<p>If this flag is present, then a &#8220;zero-copy&#8221; mode is used.
+In this case the caller must set the value of <em>data</em> to the location
+of another pointer (of type <code>void *</code>), and the <em>sizep</em> 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 <a href="nng_alloc.3.html"><code>nng_alloc()</code></a>), fill it with
+the message body, and store it at the address referenced by <em>data</em>, and update
+the size referenced by <em>sizep</em>.
+The caller is responsible for disposing of the received buffer either by
+the <a href="nng_free.3.html"><code>nng_free()</code></a> function or passing the message (also
+with the <code>NNG_FLAG_ALLOC</code> flag) in a call to <a href="nng_send.3.html"><code>nng_send()</code></a>.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>If the special flag <code>NNG_FLAG_ALLOC</code> (see above) is not specified, then the
+caller must set <em>data</em> to a buffer to receive the message body content,
+and must store the size of that buffer at the location pointed to by <em>sizep</em>.
+When the function returns, if it is successful, the size at <em>sizep</em> will be
+updated with the actual message body length copied into <em>data</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_req.7.html"><em>req</em></a> socket a message may only be received
+after a request has been sent, and a <a href="nng_sub.7.html"><em>sub</em></a> 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
+<a href="nng_pub.7.html"><em>pub</em></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <code>NNG_FLAG_ALLOC</code> 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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block, but <code>NNG_FLAG_NONBLOCK</code> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EMSGSIZE</code>
+</td>
+<td class="hdlist2">
+<p>The received message did not fit in the size provided.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for socket <em>s</em> does not support receiving.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> cannot receive data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_alloc.3.html">nng_alloc(3)</a>,
+<a href="nng_free.3.html">nng_free(3)</a>,
+<a href="nng_recvmsg.3.html">nng_recvmsg(3)</a>,
+<a href="nng_send.3.html">nng_send(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_recv_aio.3.html b/man/v1.2.4/nng_recv_aio.3.html
new file mode 100644
index 00000000..68824576
--- /dev/null
+++ b/man/v1.2.4/nng_recv_aio.3.html
@@ -0,0 +1,189 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_recv_aio(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_recv_aio(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_recv_aio - receive message asynchronously</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_recv_aio</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_recv_aio()</code> receives a <a href="nng_msg.5.html">message</a> using the
+<a href="nng_socket.5.html">socket</a> <em>s</em> asynchronously.</p>
+</div>
+<div class="paragraph">
+<p>When a message is successfully received by the socket, it is
+stored in the <em>aio</em> by an internal call equivalent to
+<a href="nng_aio_set_msg.3.html"><code>nng_aio_set_msg()</code></a>, then the completion
+callback on the <em>aio</em> is executed.
+In this case, <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a> will
+return zero.
+The callback function is responsible for retrieving the message
+and disposing of it appropriately.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Failing to accept and dispose of messages in this
+case can lead to memory leaks.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>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 <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a> will be non-zero.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_pub.7.html"><em>pub</em></a> socket the data is broadcast, so that
+any peers who have a suitable subscription will be able to receive it using
+<a href="nng_recv.3.html"><code>nng_recv()</code></a> or a similar function.)
+Furthermore, some protocols may not support receiving (such as
+<a href="nng_pub.7.html"><em>pub</em></a>) or may require other conditions.
+(For example, <a href="nng_req.7.html"><em>req</em></a> sockets cannot normally receive data, which
+are replies to requests, until they have first sent a request.)
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None. (The operation completes asynchronously.)</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for socket <em>s</em> does not support receiving.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> cannot receive data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The receive timeout expired.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_recvmsg.3.html b/man/v1.2.4/nng_recvmsg.3.html
new file mode 100644
index 00000000..5f165566
--- /dev/null
+++ b/man/v1.2.4/nng_recvmsg.3.html
@@ -0,0 +1,189 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_recvmsg(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_recvmsg(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_recvmsg - recv message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_recvmsg</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_msg</span> <span class="tok-o">**</span><span class="tok-n">msgp</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_recvmsg()</code> receives a message on socket <em>s</em>, storing the
+received message at the location pointed to by <em>msgp</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Using this function gives access to the message structure, and thus may
+offer more functionality than the simpler <a href="nng_recv.3.html"><code>nng_recv()</code></a> function.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> may contain the following value:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_FLAG_NONBLOCK</code></dt>
+<dd>
+<p>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 <em>s</em>, or any configured timer expires.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_req.7.html"><em>req</em></a> socket a message may only be received
+after a request has been sent, and an <a href="nng_sub.7.html"><em>sub</em></a> 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
+<a href="nng_pub.7.html"><em>pub</em></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block, but <code>NNG_FLAG_NONBLOCK</code> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for socket <em>s</em> does not support receiving.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> cannot receive data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_free.3.html">nng_msg_free(3)</a>,
+<a href="nng_recv.3.html">nng_recv(3)</a>,
+<a href="nng_sendmsg.3.html">nng_sendmsg(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_rep.7.html b/man/v1.2.4/nng_rep.7.html
new file mode 100644
index 00000000..8fb6ca2a
--- /dev/null
+++ b/man/v1.2.4/nng_rep.7.html
@@ -0,0 +1,151 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_rep(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_rep(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_context_operations">Context Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_rep - reply protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/reqrep0/rep.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>rep</em> 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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This protocol is useful in setting up RPC-like services.
+It is also &#8220;reliable&#8221;, in that a the requester will keep retrying until
+a reply is received.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>rep</em> protocol is the replier side, and the
+<a href="nng_req.7.html"><em>req</em></a> protocol is the requester side.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_rep_open.3.html"><code>nng_rep0_open()</code></a> functions create a replier socket.
+This socket may be used to receive messages (requests), and then to send
+replies.</p>
+</div>
+<div class="paragraph">
+<p>Generally a reply can only be sent after receiving a request.</p>
+</div>
+<div class="paragraph">
+<p>Send operations will result in <code>NNG_ESTATE</code> if no corresponding request
+was previously received.</p>
+</div>
+<div class="paragraph">
+<p>Likewise, only one receive operation may be pending at a time.
+Any additional concurrent receive operations will result in <code>NNG_ESTATE</code>.</p>
+</div>
+<div class="paragraph">
+<p><a href="nng.7.html#raw_mode">Raw</a> mode sockets ignore all these restrictions.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_context_operations">Context Operations</h3>
+<div class="paragraph">
+<p>This protocol supports the creation of <a href="nng_ctx.5.html">contexts</a> for concurrent
+use cases using <a href="nng_ctx_open.3.html"><code>nng_ctx_open()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Each context may have at most one outstanding request, and operates
+independently from the others.
+The restrictions for order of operations with sockets apply equally
+well for contexts, except that each context will be treated as if it were
+a separate socket.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Only version 0 of this protocol is supported.
+(At the time of writing, no other versions of this protocol have been defined.)</p>
+</div>
+<div class="sect3">
+<h4 id="_protocol_options">Protocol Options</h4>
+<div class="paragraph">
+<p>The <em>rep</em> protocol has no protocol-specific options.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_protocol_headers">Protocol Headers</h4>
+<div class="paragraph">
+<p>
+The <em>rep</em> protocol uses a <em>backtrace</em> in the header.
+This is more fully documented in the <a href="nng_req.7.html"><em>req</em></a> manual.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_rep_open.3.html">nng_rep_open(3)</a>,
+<a href="nng.7.html">nng(7)</a>,
+<a href="nng_req.7.html">nng_req(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_rep_open.3.html b/man/v1.2.4/nng_rep_open.3.html
new file mode 100644
index 00000000..b0e94871
--- /dev/null
+++ b/man/v1.2.4/nng_rep_open.3.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_rep_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_rep_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_rep_open - create rep socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/reqrep0/rep.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_rep0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_rep0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_rep0_open()</code> function creates a <a href="nng_rep.7.html"><em>rep</em></a> version 0
+<a href="nng_socket.5.html">socket</a> and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_rep0_open_raw()</code> function creates a <a href="nng_rep.7.html"><em>rep</em></a> version 0
+<a href="nng_socket.5.html">socket</a>
+in <a href="nng.7.html#raw_mode">raw</a> mode and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_rep.7.html">nng_rep(7)</a>,
+<a href="nng_req.7.html">nng_req(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_req.7.html b/man/v1.2.4/nng_req.7.html
new file mode 100644
index 00000000..4e929a16
--- /dev/null
+++ b/man/v1.2.4/nng_req.7.html
@@ -0,0 +1,252 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_req(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_req(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_context_operations">Context Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_req - request protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/reqrep0/req.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>req</em> 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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.)
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The requester generally only has one outstanding request at a time unless
+in &#8220;raw&#8221; mode (via
+<a href="nng_options.5.html#NNG_OPT_RAW"><code>NNG_OPT_RAW</code></a>),
+and it will generally attempt to spread work requests to different peer repliers.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This property, when combined with <a href="nng_device.3.html"><code>nng_device()</code></a>
+can help provide a degree of load-balancing.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>req</em> protocol is the requester side, and the
+<a href="nng_rep.7.html"><em>rep</em></a> protocol is the replier side.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_req_open.3.html"><code>nng_req0_open()</code></a> functions create a requester socket.
+This socket may be used to send messages (requests), and then to receive replies.</p>
+</div>
+<div class="paragraph">
+<p>Generally a reply can only be received after sending a request.
+(Attempts to receive a message will result in <code>NNG_ESTATE</code> if there is no
+outstanding request.)</p>
+</div>
+<div class="paragraph">
+<p>Furthermore, only a single receive operation may be pending at a time.
+Attempts to post more receive operations concurrently will result in
+<code>NNG_ESTATE</code>.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p><a href="nng.7.html#raw_mode">Raw</a> mode sockets ignore all these restrictions.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_context_operations">Context Operations</h3>
+<div class="paragraph">
+<p>This protocol supports the creation of <a href="nng_ctx.5.html">contexts</a> for concurrent
+use cases using <a href="nng_ctx_open.3.html"><code>nng_ctx_open()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>NNG_OPT_REQ_RESENDTIME</code> value may be configured differently
+on contexts created this way.</p>
+</div>
+<div class="paragraph">
+<p>Each context may have at most one outstanding request, and operates
+independently from the others.</p>
+</div>
+<div class="paragraph">
+<p>The restrictions for order of operations with sockets apply equally
+well for contexts, except that each context will be treated as if it were
+a separate socket.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Only version 0 of this protocol is supported.
+(At the time of writing, no other versions of this protocol have been defined.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The following protocol-specific option is available.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_REQ_RESENDTIME</code></dt>
+<dd>
+<p>(<a href="nng_duration.5.html"><code>nng_duration</code></a>)
+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.)</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>
+This protocol uses a <em>backtrace</em> in the header.
+This form uses a &#8220;stack&#8221; of 32-bit big-endian identifiers.
+There <strong>must</strong> be at least one identifier, the <em>request ID</em>, which will be the
+last element in the array, and <strong>must</strong> have the most significant bit set.</p>
+</div>
+<div class="paragraph">
+<p>There may be additional <em>peer ID</em>s preceding the request ID.
+These will be distinguishable from the request ID by having their most
+significant bit clear.</p>
+</div>
+<div class="paragraph">
+<p>When a request message is received by a forwarding node (see
+<a href="nng_device.3.html"><code>nng_device()</code></a>), the forwarding node prepends a
+32-bit peer ID (which <strong>must</strong> have the most significant bit clear),
+which is the forwarder&#8217;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.)</p>
+</div>
+<div class="paragraph">
+<p>It may help to think of prepending a peer ID as &#8220;pushing&#8221; 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.)</p>
+</div>
+<div class="paragraph">
+<p>When a reply message is created, it is created using the same headers
+that the request contained.</p>
+</div>
+<div class="paragraph">
+<p>A forwarding node can &#8220;pop&#8221; the peer ID it originally pushed on the
+message, stripping it from the front of the message as it does so.</p>
+</div>
+<div class="paragraph">
+<p>When the reply finally arrives back at the initiating requester, it
+should have only a single element in the message, which will be the
+request ID it originally used for the request.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ctx_open.3.html">nng_ctx_open(3)</a>,
+<a href="nng_device.3.html">nng_device(3)</a>,
+<a href="nng_req_open.3.html">nng_req_open(3)</a>,
+<a href="nng_ctx.5.html">nng_ctx(5)</a>,
+<a href="nng.7.html">nng(7)</a>,
+<a href="nng_rep.7.html">nng_rep(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_req_open.3.html b/man/v1.2.4/nng_req_open.3.html
new file mode 100644
index 00000000..00119997
--- /dev/null
+++ b/man/v1.2.4/nng_req_open.3.html
@@ -0,0 +1,114 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_req_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_req_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_req_open - create req socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/reqrep0/req.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_req0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_req0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_req0_open()</code> function creates a <a href="nng_req.7.html"><em>req</em></a> version 0
+<a href="nng_socket.5.html">socket</a> and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_req0_open_raw()</code> function creates a <a href="nng_req.7.html"><em>req</em></a> version 0
+<a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode
+and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_rep.7.html">nng_rep(7)</a>,
+<a href="nng_req.7.html">nng_req(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_respondent.7.html b/man/v1.2.4/nng_respondent.7.html
new file mode 100644
index 00000000..b22f3cc1
--- /dev/null
+++ b/man/v1.2.4/nng_respondent.7.html
@@ -0,0 +1,154 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_respondent(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_respondent(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_context_operations">Context Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_respondent - respondent protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/survey0/respond.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>respondent</em> 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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This protocol is useful in solving voting problems, such as leader
+election in cluster configurations, as well as certain kinds of service
+discovery problems.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>respondent</em> protocol is the respondent side, and the
+<a href="nng_surveyor.7.html"><em>surveyor</em></a> protocol is the surveyor side.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_respondent_open.3.html"><code>nng_respondent0_open()</code></a> functions create 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.</p>
+</div>
+<div class="paragraph">
+<p>Respondents may discard a survey by simply not replying to it.</p>
+</div>
+<div class="paragraph">
+<p>Raw mode sockets (set with <a href="nng_options.5.html#NNG_OPT_RAW"><code>NNG_OPT_RAW</code></a>)
+ignore all these restrictions.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_context_operations">Context Operations</h3>
+<div class="paragraph">
+<p>This protocol supports the creation of <a href="nng_ctx.5.html">contexts</a> for concurrent
+use cases using <a href="nng_ctx_open.3.html"><code>nng_ctx_open()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Incoming surveys will be routed to and received by only one context.
+Additional surveys may be received by other contexts in parallel.
+Replies made using a context will be returned to the the surveyor that
+issued the survey most recently received by that context.
+The restrictions for order of operations with sockets apply equally
+well for contexts, except that each context will be treated as if it were
+a separate socket.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>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 <a href="http://nanomsg.org">nanomsg</a>, but was not released in any
+production version.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The <em>respondent</em> protocol has no protocol-specific options.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>
+The <em>respondent</em> protocol uses a <em>backtrace</em> in the header.
+This is more fully documented in the <a href="nng_surveyor.7.html"><em>surveyor</em></a> manual.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_respondent_open.3.html">nng_respondent_open(3)</a>,
+<a href="nng_surveyor.7.html">nng_surveyor(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_respondent_open.3.html b/man/v1.2.4/nng_respondent_open.3.html
new file mode 100644
index 00000000..d5d6aa5e
--- /dev/null
+++ b/man/v1.2.4/nng_respondent_open.3.html
@@ -0,0 +1,115 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_respondent_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_respondent_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_respondent_open - create respondent socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/survey0/respond.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_respondent0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_respondent0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_respondent0_open()</code> function creates a
+<a href="nng_respondent.7.html"><em>respondent</em></a>
+version 0 <a href="nng_socket.5.html">socket</a> and returns it at the location
+pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_respondent0_open_raw()</code> function creates a
+<a href="nng_respondent.7.html"><em>respondent</em></a>
+version 0 <a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_respondent.7.html">nng_respondent(7)</a>,
+<a href="nng_surveyor.7.html">nng_surveyor(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_send.3.html b/man/v1.2.4/nng_send.3.html
new file mode 100644
index 00000000..014e2c8f
--- /dev/null
+++ b/man/v1.2.4/nng_send.3.html
@@ -0,0 +1,247 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_send(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_send(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_send - send data</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_send</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_send()</code> function sends a message containing the <em>data</em> of
+length <em>size</em> using the <a href="nng_socket.5.html">socket</a> <em>s</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_pub.7.html"><em>pub</em></a> socket the data is broadcast, so that
+any peers who have a suitable subscription will be able to receive it using
+<a href="nng_recv.3.html"><code>nng_recv()</code></a> or a similar function.)
+Furthermore, some protocols may not support sending data (such as
+<a href="nng_sub.7.html"><em>sub</em></a>) or may require other conditions.
+(For example, <a href="nng_rep.7.html"><em>rep</em></a> sockets cannot normally send data,
+which are responses to requests, until they have first received a request.)
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> may contain either of (or neither of) the following values:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_FLAG_NONBLOCK</code></dt>
+<dd>
+<p>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 <code>NNG_EAGAIN</code>. If this flag is not specified,
+then the function will block if such a condition exists.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_FLAG_ALLOC</code></dt>
+<dd>
+<p>The <em>data</em> was allocated using <a href="nng_alloc.3.html"><code>nng_alloc()</code></a>, or was
+obtained from a call to <a href="nng_recv.3.html"><code>nng_recv()</code></a> with
+the <code>NNG_FLAG_ALLOC</code> flag.
+If this function returns success, then the <em>data</em> is "owned" by the
+function, and it will assume responsibility for calling
+<a href="nng_free.3.html"><code>nng_free()</code></a> when it is no longer needed.
+In the absence of this flag, the <em>data</em> is copied by the implementation
+before the function returns to the caller.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <code>NNG_FLAG_ALLOC</code> flag can be used to reduce data copies, thereby
+increasing performance.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Regardless of the presence or absence of <code>NNG_FLAG_NONBLOCK</code>, 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 implicitly <code>NNG_FLAG_NONBLOCK</code>,
+such as with <a href="nng_pub.7.html"><em>pub</em></a> sockets, which are best-effort delivery only.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+When using <code>NNG_FLAG_ALLOC</code>, it is important that the value of <em>size</em>
+match the actual allocated size of the data.
+Using an incorrect size results
+in unspecified behavior, which may include heap corruption, program crashes,
+or trans-dimensional mutation of the program&#8217;s author.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block, but <code>NNG_FLAG_NONBLOCK</code> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EMSGSIZE</code>
+</td>
+<td class="hdlist2">
+<p>The value of <em>size</em> is too large.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for socket <em>s</em> does not support sending.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> cannot send data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_alloc.3.html">nng_alloc(3)</a>,
+<a href="nng_free.3.html">nng_free(3)</a>,
+<a href="nng_recv.3.html">nng_recv(3)</a>,
+<a href="nng_sendmsg.3.html">nng_sendmsg(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_send_aio.3.html b/man/v1.2.4/nng_send_aio.3.html
new file mode 100644
index 00000000..afa062c2
--- /dev/null
+++ b/man/v1.2.4/nng_send_aio.3.html
@@ -0,0 +1,207 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_send_aio(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_send_aio(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_send_aio - send message asynchronously</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_send_aio</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_send_aio()</code> sends a <a href="nng_msg.5.html">message</a> using the
+<a href="nng_socket.5.html">socket</a> <em>s</em> asynchronously.</p>
+</div>
+<div class="paragraph">
+<p>The message to send must have previously been set on the <em>aio</em>
+using the <a href="nng_aio_set_msg.3.html"><code>nng_aio_set_msg()</code></a> function.
+The function assumes &#8220;ownership&#8221; of the message.</p>
+</div>
+<div class="paragraph">
+<p>If the message was successfully queued for delivery to the socket,
+then the <em>aio</em> will be completed, and <a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>
+will return zero. In this case the socket will dispose of the
+message when it is finished with it.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The operation will be &#8220;completed&#8221;, and the callback associated
+with the <em>aio</em> executed, as soon as the socket accepts the message
+for sending.
+This does <em>not</em> 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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If the operation fails for any reason (including cancellation or timeout),
+then the <em>aio</em> callback will be executed and
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>
+will return a non-zero error status.
+In this case, the callback has a responsibility to retrieve the message from
+the <em>aio</em> with
+<a href="nng_aio_get_msg.3.html"><code>nng_aio_get_msg()</code></a> and dispose of it appropriately.
+(This may include retrying the send operation on the same or a different
+socket, or deallocating the message with <a href="nng_msg_free.3.html"><code>nng_msg_free()</code></a>.)</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_pub.7.html"><em>pub</em></a> socket the data is broadcast, so that
+any peers who have a suitable subscription will be able to receive it using
+<a href="nng_recv.3.html"><code>nng_recv()</code></a> or a similar function.)
+Furthermore, some protocols may not support sending (such as
+<a href="nng_sub.7.html"><em>sub</em></a>) or may require other conditions.
+(For example, <a href="nng_rep.7.html"><em>rep</em></a> sockets cannot normally send data, which
+are responses to requests, until they have first received a request.)
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None. (The operation completes asynchronously.)</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EMSGSIZE</code>
+</td>
+<td class="hdlist2">
+<p>The message is too large.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for socket <em>s</em> does not support sending.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> cannot send data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The send timeout expired.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_get_msg.3.html">nng_aio_get_msg(3)</a>,
+<a href="nng_aio_set_msg.3.html">nng_aio_set_msg(3)</a>,
+<a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sendmsg.3.html b/man/v1.2.4/nng_sendmsg.3.html
new file mode 100644
index 00000000..43eab30d
--- /dev/null
+++ b/man/v1.2.4/nng_sendmsg.3.html
@@ -0,0 +1,231 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sendmsg(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sendmsg(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sendmsg - send message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_sendmsg</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_msg</span> <span class="tok-o">*</span><span class="tok-n">msg</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">flags</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_sendmsg()</code> sends message <em>msg</em> using the socket <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>If the function returns zero, indicating it has accepted the message for
+delivery, then the <em>msg</em> is &#8220;owned&#8221; by the socket <em>s</em>, and the caller
+must not make any further use of it.
+The socket will free the message when it is finished.</p>
+</div>
+<div class="paragraph">
+<p>If the function returns non-zero, then it is the caller&#8217;s responsibility
+to dispose of the <em>msg</em>, which may include freeing it, sending it to
+another socket, or simply trying again later.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Using this function gives access to the message structure, and may
+offer more functionality than the simpler <a href="nng_send.3.html"><code>nng_send()</code></a> function.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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 <a href="nng_pub.7.html"><em>pub</em></a> socket the data is broadcast, so that
+any peers who have a suitable subscription will be able to receive it using
+<a href="nng_recv.3.html"><code>nng_recv()</code></a> or a similar function.)
+Furthermore, some protocols may not support sending (such as
+<a href="nng_sub.7.html"><em>sub</em></a>) or may require other conditions.
+(For example, <a href="nng_rep.7.html"><em>rep</em></a> sockets cannot normally send data, which
+are responses to requests, until they have first received a request.)
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>flags</em> may contain the following value:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_FLAG_NONBLOCK</code></dt>
+<dd>
+<p>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 <code>NNG_EAGAIN</code>.
+If this flag is not specified, then the function will block if such a
+condition exists.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Regardless of the presence or absence of <code>NNG_FLAG_NONBLOCK</code>, 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 implicitly <code>NNG_FLAG_NONBLOCK</code>,
+such as with <a href="nng_pub.7.html"><em>pub</em></a> sockets, which are best-effort delivery only.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EAGAIN</code>
+</td>
+<td class="hdlist2">
+<p>The operation would block, but <code>NNG_FLAG_NONBLOCK</code> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> is not open.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid set of <em>flags</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EMSGSIZE</code>
+</td>
+<td class="hdlist2">
+<p>The value of <em>size</em> is too large.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol for socket <em>s</em> does not support sending.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket <em>s</em> cannot send data in this state.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>The operation timed out.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_msg_alloc.3.html">nng_msg_alloc(3)</a>,
+<a href="nng_recvmsg.3.html">nng_recvmsg(3)</a>,
+<a href="nng_send.3.html">nng_send(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_setopt.3.html b/man/v1.2.4/nng_setopt.3.html
new file mode 100644
index 00000000..97dbb532
--- /dev/null
+++ b/man/v1.2.4/nng_setopt.3.html
@@ -0,0 +1,262 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_setopt(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_setopt(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_setopt - set socket option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt_bool</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt_int</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt_ms</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt_size</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt_string</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_setopt_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+These functions are deprecated. Please see <a href="nng_socket_set.3.html">nng_socket_set</a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>
+The <code>nng_setopt()</code> functions are used to configure options for
+the socket <em>s</em>.
+The actual options that may be configured in this way vary, and are
+specified by <em>opt</em>.
+A number of them are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_setopt()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_setopt_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_setopt_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_setopt_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_setopt_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed by other functions.
+For example, TLS configuration objects created with
+(<a href="nng_tls_config_alloc.3tls.html"><code>nng_tls_config_alloc()</code></a>)
+can be passed this way.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_setopt_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_setopt_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_setopt_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket is in an inappropriate state for setting this option.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_getopt.3.html">nng_getopt(3)</a>,
+<a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a>,
+<a href="nng_listener_setopt.3.html">nng_listener_setopt(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sleep_aio.3.html b/man/v1.2.4/nng_sleep_aio.3.html
new file mode 100644
index 00000000..349879bf
--- /dev/null
+++ b/man/v1.2.4/nng_sleep_aio.3.html
@@ -0,0 +1,106 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sleep_aio(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sleep_aio(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sleep_aio - sleep asynchronously</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_sleep_aio</span><span class="tok-p">(</span><span class="tok-n">nng_duration</span> <span class="tok-n">msec</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_sleep_aio()</code> function performs an asynchronous &#8220;sleep&#8221;,
+causing the callback for <em>aio</em> to be executed after <em>msec</em> milliseconds.
+If the sleep finishes completely, the result will always be zero.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+If a timeout is set on <em>aio</em> using
+<a href="nng_aio_set_timeout.3.html"><code>nng_aio_set_timeout()</code></a>, and it is shorter
+than <em>msec</em>,
+then the sleep will wake up early, with a result code of <code>NNG_ETIMEDOUT</code>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_abort.3.html">nng_aio_abort(3)</a>,
+<a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_set_timeout.3.html">nng_aio_set_timeout(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sockaddr.5.html b/man/v1.2.4/nng_sockaddr.5.html
new file mode 100644
index 00000000..e9996639
--- /dev/null
+++ b/man/v1.2.4/nng_sockaddr.5.html
@@ -0,0 +1,168 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sockaddr(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sockaddr(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sockaddr - socket address</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">union</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-p">{</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">s_family</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_sockaddr_ipc</span> <span class="tok-n">s_ipc</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_sockaddr_inproc</span> <span class="tok-n">s_inproc</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_sockaddr_in</span> <span class="tok-n">s_in</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_sockaddr_in6</span> <span class="tok-n">s_in6</span><span class="tok-p">;</span>
+ <span class="tok-n">nng_sockaddr_zt</span> <span class="tok-n">s_zt</span><span class="tok-p">;</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_sockaddr</span><span class="tok-p">;</span>
+
+<span class="tok-k">enum</span> <span class="tok-n">sockaddr_family</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_AF_UNSPEC</span> <span class="tok-o">=</span> <span class="tok-mi">0</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_AF_INPROC</span> <span class="tok-o">=</span> <span class="tok-mi">1</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_AF_IPC</span> <span class="tok-o">=</span> <span class="tok-mi">2</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_AF_INET</span> <span class="tok-o">=</span> <span class="tok-mi">3</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_AF_INET6</span> <span class="tok-o">=</span> <span class="tok-mi">4</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_AF_ZT</span> <span class="tok-o">=</span> <span class="tok-mi">5</span><span class="tok-p">,</span>
+<span class="tok-p">};</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_sockaddr</code> is a structure used for
+representing the addresses used by underlying transports, such as TCP/IP
+addresses, IPC paths, and so forth.</p>
+</div>
+<div class="sidebarblock">
+<div class="content">
+<div class="paragraph">
+<p>The name <code>sockaddr</code> is based on its similarity with POSIX <code>struct sockaddr</code>,
+but in the <em>nng</em> library, these addresses are more closely affiliated with
+instances of <a href="nng_pipe.5.html"><code>nng_pipe</code></a>
+than of <a href="nng_socket.5.html"><code>nng_socket</code></a>.
+The naming confusion is unfortunate.</p>
+</div>
+</div>
+</div>
+<div class="paragraph">
+<p>This structure is actually a union, with different members for different
+types of addresses.</p>
+</div>
+<div class="paragraph">
+<p>Every member structure has as its first element a <code>uint16_t</code> field
+containing the &#8220;address family&#8221;.
+This overlaps the <code>s_family</code> member of the union, and indicates which
+specific member should be used.</p>
+</div>
+<div class="paragraph">
+<p>The values of <code>s_family</code> are as follows:</p>
+</div>
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_AF_UNSPEC</code>
+</td>
+<td class="hdlist2">
+<p>Invalid address, no other valid fields.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_AF_INPROC</code>
+</td>
+<td class="hdlist2">
+<p>Address for intraprocess communication (<a href="nng_inproc.7.html">nng_inproc(7)</a>). The <code>s_inproc</code> member is valid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_AF_IPC</code>
+</td>
+<td class="hdlist2">
+<p>Address for interprocess communication (<a href="nng_ipc.7.html">nng_ipc(7)</a>). The <code>s_path</code> member is valid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_AF_INET</code>
+</td>
+<td class="hdlist2">
+<p>Address for TCP/IP (v4) communication. The <code>s_in</code> member is valid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_AF_INET6</code>
+</td>
+<td class="hdlist2">
+<p>Address for TCP/IP (v6) communication. The <code>s_in6</code> member is valid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_AF_ZT</code>
+</td>
+<td class="hdlist2">
+<p>Address for ZeroTier transport (<a href="nng_zerotier.7.html">nng_zerotier(7)</a>). The <code>s_zt</code> member is valid.</p>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Please see the manual pages for each individual type for more information.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr_in.5.html">nng_sockaddr_in(5)</a>,
+<a href="nng_sockaddr_in6.5.html">nng_sockaddr_in6(5)</a>,
+<a href="nng_sockaddr_inproc.5.html">nng_sockaddr_inproc(5)</a>,
+<a href="nng_sockaddr_ipc.5.html">nng_sockaddr_ipc(5)</a>,
+<a href="nng_sockaddr_zt.5.html">nng_sockaddr_zt(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sockaddr_in.5.html b/man/v1.2.4/nng_sockaddr_in.5.html
new file mode 100644
index 00000000..c3525ee0
--- /dev/null
+++ b/man/v1.2.4/nng_sockaddr_in.5.html
@@ -0,0 +1,133 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sockaddr_in(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sockaddr_in(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sockaddr_in - IPv4 socket address</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">enum</span> <span class="tok-n">sockaddr_family</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_AF_INET</span> <span class="tok-o">=</span> <span class="tok-mi">3</span><span class="tok-p">,</span>
+<span class="tok-p">};</span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-p">{</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_family</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_port</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint32_t</span> <span class="tok-n">sa_addr</span><span class="tok-p">;</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_sockaddr_in</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_sockaddr_in</code> is the flavor of <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+used to represent TCP (and sometimes UDP) addresses,
+including the Internet Protocol (IP) address and port number.</p>
+</div>
+<div class="paragraph">
+<p>This structure is used with IPv4 addresses.
+A different structure, <a href="nng_sockaddr_in6.5.html"><code>nng_sockaddr_in6</code></a>, is used
+for IPv6 addresses.</p>
+</div>
+<div class="paragraph">
+<p>The following structure members are present:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>sa_family</code></dt>
+<dd>
+<p>This field will always have the value <code>NNG_AF_INET</code>.</p>
+</dd>
+<dt class="hdlist1"><code>sa_port</code></dt>
+<dd>
+<p>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.</p>
+</dd>
+<dt class="hdlist1"><code>sa_addr</code></dt>
+<dd>
+<p>This field holds the IP address in
+network-byte order.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <code>sa_port</code> and <code>sa_addr</code> fields are in network-byte order to
+facilitate their use with system APIs such as <code>inet_ntop()</code>.
+Most platforms use some form of BSD-derived network API, which uses
+network-byte order in the various structures (such as <code>sockaddr_in</code>).
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This field appears similar to BSD <code>sockaddr_in</code>, but it is
+<em>not</em> the same, and they may not be used interchangeably.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_sockaddr_in6.5.html">nng_sockaddr_in6(5)</a>,
+<a href="nng_tcp.7.html">nng_tcp(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sockaddr_in6.5.html b/man/v1.2.4/nng_sockaddr_in6.5.html
new file mode 100644
index 00000000..1d051f63
--- /dev/null
+++ b/man/v1.2.4/nng_sockaddr_in6.5.html
@@ -0,0 +1,133 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sockaddr_in6(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sockaddr_in6(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sockaddr_in6 - IPv6 socket address</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">enum</span> <span class="tok-n">sockaddr_family</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_AF_INET6</span> <span class="tok-o">=</span> <span class="tok-mi">4</span><span class="tok-p">,</span>
+<span class="tok-p">};</span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-p">{</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_family</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_port</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint8_t</span> <span class="tok-n">sa_addr</span><span class="tok-p">[</span><span class="tok-mi">16</span><span class="tok-p">];</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_sockaddr_in6</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_sockaddr_in6</code> is the flavor of <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+used to represent TCP (and sometimes UDP) addresses,
+including the Internet Protocol (IP) address and port number.</p>
+</div>
+<div class="paragraph">
+<p>This structure is used with IPv6 addresses.
+A different structure, <a href="nng_sockaddr_in.5.html"><code>nng_sockaddr_in</code></a>, is used
+for IPv4 addresses.</p>
+</div>
+<div class="paragraph">
+<p>The following structure members are present:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>sa_family</code></dt>
+<dd>
+<p>This field will always have the value <code>NNG_AF_INET6</code>.</p>
+</dd>
+<dt class="hdlist1"><code>sa_port</code></dt>
+<dd>
+<p>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.</p>
+</dd>
+<dt class="hdlist1"><code>sa_addr</code></dt>
+<dd>
+<p>This field holds the IP address in
+network-byte order.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <code>sa_port</code> and <code>sa_addr</code> fields are in network-byte order to
+facilitate their use with system APIs such as <code>inet_ntop()</code>.
+Most platforms use some form of BSD-derived network API, which uses
+network-byte order in the various structures (such as <code>sockaddr_in6</code>).
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This field appears similar to BSD <code>sockaddr_in6</code>, but it is
+<em>not</em> the same, and they may not be used interchangeably.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_sockaddr_in.5.html">nng_sockaddr_in(5)</a>,
+<a href="nng_tcp.7.html">nng_tcp(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sockaddr_inproc.5.html b/man/v1.2.4/nng_sockaddr_inproc.5.html
new file mode 100644
index 00000000..2a7433c5
--- /dev/null
+++ b/man/v1.2.4/nng_sockaddr_inproc.5.html
@@ -0,0 +1,109 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sockaddr_inproc(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sockaddr_inproc(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sockaddr_inproc - inproc socket address</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">enum</span> <span class="tok-n">sockaddr_family</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_AF_INPROC</span> <span class="tok-o">=</span> <span class="tok-mi">1</span><span class="tok-p">,</span>
+<span class="tok-p">};</span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-p">{</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_family</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_name</span><span class="tok-p">[</span><span class="tok-mi">128</span><span class="tok-p">];</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_sockaddr_inproc</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_sockaddr_inproc</code> is the flavor of <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+used to represent addresses associated with intra-process communication
+using the <a href="nng_inproc.7.html"><em>inproc</em></a> transport.</p>
+</div>
+<div class="paragraph">
+<p>The following structure members are present:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>sa_family</code></dt>
+<dd>
+<p>This field will always have the value <code>NNG_AF_INPROC</code>.</p>
+</dd>
+<dt class="hdlist1"><code>sa_name</code></dt>
+<dd>
+<p>This field holds an arbitrary C string, which is the &#8220;name&#8221; of
+the address.
+The string must be <code>NUL</code> terminated, but no other restrictions exist.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+In order to ensure maximum compatibility, applications should avoid
+hard coding the size of the <code>sa_name</code> member explicitly, but use the
+<code>sizeof</code> operator to determine its actual size at compile time.
+Furthermore, the size is guaranteed to be at least 128.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_inproc.7.html">nng_inproc(7)</a>
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sockaddr_ipc.5.html b/man/v1.2.4/nng_sockaddr_ipc.5.html
new file mode 100644
index 00000000..c4bd7c40
--- /dev/null
+++ b/man/v1.2.4/nng_sockaddr_ipc.5.html
@@ -0,0 +1,141 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sockaddr_ipc(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sockaddr_ipc(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sockaddr_ipc - IPC socket address</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">enum</span> <span class="tok-n">sockaddr_family</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_AF_IPC</span> <span class="tok-o">=</span> <span class="tok-mi">2</span><span class="tok-p">,</span>
+<span class="tok-p">};</span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-p">{</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_family</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_path</span><span class="tok-p">[</span><span class="tok-mi">128</span><span class="tok-p">];</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_sockaddr_ipc</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_sockaddr_ipc</code> is the flavor of <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+used to represent addresses associated with IPC communication
+using the <a href="nng_ipc.7.html"><em>ipc</em></a> transport.</p>
+</div>
+<div class="paragraph">
+<p>The following structure members are present:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>sa_family</code></dt>
+<dd>
+<p>This field will always have the value <code>NNG_AF_IPC</code>.</p>
+</dd>
+<dt class="hdlist1"><code>sa_path</code></dt>
+<dd>
+<p>This field holds the C string corresponding to path name where the
+IPC socket is located.
+For systems using UNIX domain sockets, this will be an absolute
+path name in the file system, where the UNIX domain socket is located.
+For Windows systems, this is the path name of the Named Pipe, without
+the leading <code>\\.pipe\</code> portion, which will be automatically added.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+At this time, there is no support for Linux &#8220;abstract sockets&#8221;.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+In order to ensure maximum compatibility, applications should avoid
+hard coding the size of the <code>sa_path</code> member explicitly, but use the
+<code>sizeof</code> 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.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+If compatibility with legacy <em>nanomsg</em> applications is required,
+then pathnames must not be longer than 122 bytes, including the final
+<code>NUL</code> byte.
+This is because legacy versions of <em>nanomsg</em> cannot express URLs
+longer than 128 bytes, including the <code>ipc://</code> prefix.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_ipc.7.html">nng_ipc(7)</a>
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sockaddr_zt.5.html b/man/v1.2.4/nng_sockaddr_zt.5.html
new file mode 100644
index 00000000..44411dcf
--- /dev/null
+++ b/man/v1.2.4/nng_sockaddr_zt.5.html
@@ -0,0 +1,144 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sockaddr_zt(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sockaddr_zt(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sockaddr_zt - ZeroTier socket address</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">enum</span> <span class="tok-n">sockaddr_family</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_AF_ZT</span> <span class="tok-o">=</span> <span class="tok-mi">5</span><span class="tok-p">,</span>
+<span class="tok-p">};</span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-p">{</span>
+ <span class="tok-kt">uint16_t</span> <span class="tok-n">sa_family</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint64_t</span> <span class="tok-n">sa_nwid</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint64_t</span> <span class="tok-n">sa_nodeid</span><span class="tok-p">;</span>
+ <span class="tok-kt">uint32_t</span> <span class="tok-n">sa_port</span><span class="tok-p">;</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_sockaddr_zt</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_sockaddr_zt</code> is the flavor of <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a>
+used to represent ZeroTier addresses, including the
+port number used by the
+<a href="nng_zerotier.7.html"><em>zt</em></a> transport.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The ZeroTier transport, and the details of this structure,
+are still considered experimental, and subject to change.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The following structure members are present:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>sa_family</code></dt>
+<dd>
+<p>This field will always have the value <code>NNG_AF_ZT</code>.</p>
+</dd>
+<dt class="hdlist1"><code>sa_nwid</code></dt>
+<dd>
+<p>
+This field holds the ZeroTier network number (or ID).
+This value is in native byte order.</p>
+</dd>
+<dt class="hdlist1"><code>sa_nodeid</code></dt>
+<dd>
+<p>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&#8217;s own node number be used.</p>
+</dd>
+<dt class="hdlist1"><code>sa_port</code></dt>
+<dd>
+<p>This field holds the &#8220;port number&#8221; used by the
+<a href="nng_zerotier.7.html"><em>zt</em></a> 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.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+ZeroTier port numbers are in <strong>native</strong> 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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_zerotier.7.html">nng_zerotier(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_socket.5.html b/man/v1.2.4/nng_socket.5.html
new file mode 100644
index 00000000..d7036d10
--- /dev/null
+++ b/man/v1.2.4/nng_socket.5.html
@@ -0,0 +1,121 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_socket(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_socket(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#NNG_SOCKET_INITIALIZER">Initialization</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_socket - socket handle</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_socket_s</span> <span class="tok-n">nng_socket</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_socket</code> is a handle to an underlying &#8220;socket&#8221; object.
+All communication between the application and remote Scalability Protocol
+peers is done through sockets.
+A given socket can have multiple dialers (<a href="nng_dialer.5.html"><code>nng_dialer</code></a>)
+and/or listeners (<a href="nng_listener.5.html"><code>nng_listener</code></a>), and multiple
+pipes (<a href="nng_pipe.5.html"><code>nng_pipe</code></a>), and
+may be connected to multiple transports at the same time.
+However, a given socket will have exactly one &#8220;protocol&#8221; associated with it,
+and is responsible for any state machines or other protocol-specific logic.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <code>nng_socket</code> structure is always passed by value (both
+for input parameters and return values), and should be treated opaquely.
+Passing structures this way gives the compiler a chance to perform
+accurate type checks in functions passing values of this type.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Each <code>nng_socket</code> is created by a protocol-specific constructor, such as
+<a href="nng_rep_open.3.html"><code>nng_rep_open()</code></a>.
+When the socket is no longer needed, it can be closed with
+<a href="nng_close.3.html"><code>nng_close()</code></a>.</p>
+</div>
+<div class="sect2">
+<h3 id="NNG_SOCKET_INITIALIZER">Initialization</h3>
+<div class="paragraph">
+<p>A socket may be initialized using the macro <code>NNG_SOCKET_INITIALIZER</code>
+before it is opened, to prevent confusion with valid open sockets.</p>
+</div>
+<div class="paragraph">
+<p>For example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span> <span class="tok-o">=</span> <span class="tok-n">NNG_SOCKET_INITIALIZER</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_close.3.html">nng_close(3)</a>,
+<a href="nng_getopt.3.html">nng_getopt(3)</a>,
+<a href="nng_setopt.3.html">nng_setopt(3)</a>,
+<a href="nng_socket_id.3.html">nng_socket_id(3)</a>,
+<a href="nng_dialer.5.html">nng_dialer(5)</a>,
+<a href="nng_listener.5.html">nng_listener(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_socket_get.3.html b/man/v1.2.4/nng_socket_get.3.html
new file mode 100644
index 00000000..f2c4b472
--- /dev/null
+++ b/man/v1.2.4/nng_socket_get.3.html
@@ -0,0 +1,261 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_socket_get(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_socket_get(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_socket_get - get socket option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valszp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">bvalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">ivalp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">zp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">u64p</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">strp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">durp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_get_addr</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">addrp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_socket_get()</code> functions are used to retrieve option values for
+the <a href="nng_socket.5.html">socket</a> <em>s</em>.
+The actual options that may be retrieved in this way vary.
+A number of them are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally transport-specific options and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the socket <em>s</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_socket_get()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced by
+<em>valszp</em>.</p>
+<div class="paragraph">
+<p>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 referenced by <em>valszp</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in <em>valszp</em> does not exceed the original buffer size.</p>
+</div>
+<div class="paragraph">
+<p>It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>valszp</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_socket_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The value will be stored at <em>bvalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The value will be stored at <em>ivalp</em>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time <a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored in <em>durp</em> as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_get_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size into the pointer <em>zp</em>,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a string into <em>strp</em>.
+This string is created from the source using <a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value into the value
+referenced by <em>u64p</em>.
+This is typically used for options related to identifiers, network
+numbers, and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBADTYPE</code>
+</td>
+<td class="hdlist2">
+<p>Incorrect type for option.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Size of destination <em>val</em> too small for object.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is write-only.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_dialer_get.3.html">nng_dialer_get(3)</a>,
+<a href="nng_listener_get.3.html">nng_listener_get(3)</a>,
+<a href="nng_pipe_get.3.html">nng_pipe_get(3)</a>,
+<a href="nng_socket_set.3.html">nng_socket_set(3)</a>,
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_strfree.3.html">nng_strfree(3)</a>,
+<a href="nng_duration.5.html">nng_duration(5)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_socket_id.3.html b/man/v1.2.4/nng_socket_id.3.html
new file mode 100644
index 00000000..13a2046c
--- /dev/null
+++ b/man/v1.2.4/nng_socket_id.3.html
@@ -0,0 +1,104 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_socket_id(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_socket_id(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_socket_id - return numeric socket identifier</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_id</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_socket_id()</code> function returns a positive identifier for the socket <em>s</em>,
+if it is valid.
+Otherwise it returns <code>-1</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+A socket is considered valid if it was ever opened with a protocol
+constructor, such as the <a href="nng_req_open.3.html"><code>nng_req0_open()</code></a> function.
+Sockets that are allocated on the stack or statically should be
+initialized with the macro
+<a href="nng_socket.5.html#NNG_SOCKET_INITIALIZER"><code>NNG_SOCKET_INITIALIZER</code></a>
+to ensure that they cannot be confused with a valid socket before they are opened.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the positive value for the socket identifier, or
+<code>-1</code> if the socket is invalid.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_socket_set.3.html b/man/v1.2.4/nng_socket_set.3.html
new file mode 100644
index 00000000..a6c683b5
--- /dev/null
+++ b/man/v1.2.4/nng_socket_set.3.html
@@ -0,0 +1,250 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_socket_set(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_socket_set(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_socket_set - set socket option</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">valsz</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set_bool</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">bval</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set_int</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">ival</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set_ms</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">dur</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">ptr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set_size</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">z</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set_string</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_socket_set_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">u64</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <code>nng_socket_set()</code> functions are used to configure options for
+the socket <em>s</em>.
+The actual options that may be configured in this way vary, and are
+specified by <em>opt</em>.
+A number of them are documented in <a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_socket_set()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>valsz</em> is the
+size of the objected located at <em>val</em>.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_socket_set_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).
+The <em>bval</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_set_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).
+The <em>ival</em> is passed to the option.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_set_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+type <a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration <em>dur</em> is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_set_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer, <em>ptr</em>, to structured data.
+The data referenced by <em>ptr</em> is generally managed by other functions.
+For example, TLS configuration objects created with
+(<a href="nng_tls_config_alloc.3tls.html"><code>nng_tls_config_alloc()</code></a>)
+can be passed this way.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_socket_set_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, <em>z</em>, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_set_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string, <em>str</em>.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_socket_set_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value, <em>u64</em>.
+This is typically used for options related to identifiers, network numbers,
+and similar.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>Parameter <em>s</em> does not refer to an open socket.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The value being passed is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option <em>opt</em> is read-only.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The socket is in an inappropriate state for setting this option.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket_get.3.html">nng_socket_get(3)</a>,
+<a href="nng_dialer_set.3.html">nng_dialer_set(3)</a>,
+<a href="nng_listener_set.3.html">nng_listener_set(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat.5.html b/man/v1.2.4/nng_stat.5.html
new file mode 100644
index 00000000..f3f58c89
--- /dev/null
+++ b/man/v1.2.4/nng_stat.5.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat - statistic</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_stat</code> represents a statistic.
+All statistics have names (<a href="nng_stat_name.3.html"><code>nng_stat_name()</code></a>) and
+descriptions (<a href="nng_stat_desc.3.html"><code>nng_stat_desc()</code></a>), and are
+typed (<a href="nng_stat_type.3.html"><code>nng_stat_type()</code></a>).</p>
+</div>
+<div class="paragraph">
+<p>Most statistics are numeric,
+and thus carry a value (<a href="nng_stat_value.3.html"><code>nng_stat_value()</code></a>)
+and frequently also a unit that the value measures (<a href="nng_stat_unit.3.html"><code>nng_stat_unit()</code></a>).</p>
+</div>
+<div class="paragraph">
+<p>Some statistics however, are simply strings (<a href="nng_stat_string.3.html"><code>nng_stat_string()</code></a>),
+and thus carry no numeric value.</p>
+</div>
+<div class="paragraph">
+<p>Statistics are organized as a tree, and any given statistic can have siblings
+(<a href="nng_stat_next.3.html"><code>nng_stat_next()</code></a>).
+Note however that generally only <code>NNG_STAT_SCOPE</code> statistics, which are
+act as placeholders in the tree (and carry no value),
+will have children (<a href="nng_stat_child.3.html"><code>nng_stat_child()</code></a>).</p>
+</div>
+<div class="paragraph">
+<p>A tree of statistics is collected using <a href="nng_stats_get.3.html"><code>nng_stats_get()</code></a>,
+and can be freed when no longer needed with <a href="nng_stats_free.3.html"><code>nng_stats_free()</code></a>.
+This collection process is generally performed in a way to minimize impact
+to running operations, but there is still some impact caused by collection
+of statistics.</p>
+</div>
+<div class="paragraph">
+<p>The time when a statistic&#8217;s value is captured can be obtained using
+<a href="nng_stat_timestamp.3.html"><code>nng_stat_timestamp()</code></a>, which is useful for
+measuring rates of change in certain statistics.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The presence, names, and meanings of any given statistic are
+subject to change at any time. These statistics are provided as an aid
+for debugging, and should generally not be relied upon for programmatic
+behaviors.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Statistics may be disabled by build-time configuration options,
+in order to reduce program size and run-time overheads.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stats_free.3.html">nng_stats_free(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat_child.3.html">nng_stat_child(3)</a>,
+<a href="nng_stat_desc.3.html">nng_stat_desc(3)</a>,
+<a href="nng_stat_name.3.html">nng_stat_name(3)</a>,
+<a href="nng_stat_next.3.html">nng_stat_next(3)</a>,
+<a href="nng_stat_string.3.html">nng_stat_string(3)</a>,
+<a href="nng_stat_timestamp.3.html">nng_stat_timestamp(3)</a>,
+<a href="nng_stat_type.3.html">nng_stat_type(3)</a>,
+<a href="nng_stat_unit.3.html">nng_stat_unit(3)</a>,
+<a href="nng_stat_value.3.html">nng_stat_value(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_child.3.html b/man/v1.2.4/nng_stat_child.3.html
new file mode 100644
index 00000000..c0409d14
--- /dev/null
+++ b/man/v1.2.4/nng_stat_child.3.html
@@ -0,0 +1,104 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_child(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_child(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_child - get child statistic</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-nf">nng_stat_child</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">parent</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_child()</code> function returns the first child statistic of the
+statistic <em>parent</em>.
+If no children are present, then <code>NULL</code> is returned.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Only statistics with type (see <a href="nng_stat_type.3.html"><code>nng_stat_type()</code></a>)
+of <code>NNG_STAT_SCOPE</code> will have children.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The first child statistic of <em>parent</em>, or NULL if <em>parent</em> has no children.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stat_next.3.html">nng_stat_next(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_desc.3.html b/man/v1.2.4/nng_stat_desc.3.html
new file mode 100644
index 00000000..0b3b247c
--- /dev/null
+++ b/man/v1.2.4/nng_stat_desc.3.html
@@ -0,0 +1,115 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_desc(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_desc(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_desc - get statistic description</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_stat_desc</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_desc()</code> function returns a brief, human-readable description
+for the statistic <em>stat</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This description can be used for a tool-tip in user interfaces
+displaying these statistic values.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+At this time, only English descriptions are provided.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The description of statistic <em>stat</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stat_name.3.html">nng_stats_name(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_name.3.html b/man/v1.2.4/nng_stat_name.3.html
new file mode 100644
index 00000000..ef37254e
--- /dev/null
+++ b/man/v1.2.4/nng_stat_name.3.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_name(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_name(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_name - get statistic name</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_stat_name</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_name()</code> function returns the name for the statistic <em>stat</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The global root statistic will have the empty string ("") as it&#8217;s name.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The name of statistic <em>stat</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_next.3.html b/man/v1.2.4/nng_stat_next.3.html
new file mode 100644
index 00000000..6d7f8c51
--- /dev/null
+++ b/man/v1.2.4/nng_stat_next.3.html
@@ -0,0 +1,91 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_next(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_next(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_next - get next statistic</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-nf">nng_stat_next</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_next()</code> function returns the next sibling statistic of the
+statistic <em>stat</em>.
+If no more siblings are present, then <code>NULL</code> is returned.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The next sibling statistic of <em>stat</em>, or NULL if <em>stat</em> is the last sibling.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stat_child.3.html">nng_stat_child(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_string.3.html b/man/v1.2.4/nng_stat_string.3.html
new file mode 100644
index 00000000..4d5081af
--- /dev/null
+++ b/man/v1.2.4/nng_stat_string.3.html
@@ -0,0 +1,95 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_string(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_string(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_string - get statistic string value</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_stat_string</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_string()</code> function returns a string value for the statistic <em>stat</em>,
+which must be of type <code>NNG_STAT_STRING</code> (see <a href="nng_stat_type.3.html"><code>nng_stat_type(3)</code></a>).</p>
+</div>
+<div class="paragraph">
+<p>If the statistic is not of type <code>NNG_STAT_STRING</code>, then <code>NULL</code> will be returned.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The string value associated with <em>stat</em>, or <code>NULL</code> if the statistic is not
+a string type.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat_type.3.html">nng_stats_type(3)</a>,
+<a href="nng_stat_value.3.html">nng_stats_value(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_timestamp.3.html b/man/v1.2.4/nng_stat_timestamp.3.html
new file mode 100644
index 00000000..abbfd74e
--- /dev/null
+++ b/man/v1.2.4/nng_stat_timestamp.3.html
@@ -0,0 +1,124 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_timestamp(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_timestamp(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_timestamp - get statistic timestamp</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-kt">uint64_t</span> <span class="tok-nf">nng_stat_timestamp</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_timestamp()</code> function returns the a timestamp, which is measured
+as a number of milliseconds since some arbitrary value in the past.</p>
+</div>
+<div class="paragraph">
+<p>Even within the same snapshot, statistics might have different timestamp
+values, as the timestamp represents the time when that particular statistic
+was captured.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+These values are intended to facilitate calculation of rates, by
+comparing values from one snapshot with a subsequent one.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The values used here have the same offset as the
+<a href="nng_clock.3supp.html"><code>nng_clock()</code></a> supplemental function.
+This can be useful when converting these values to local clock time.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The timestamp when <em>stat</em> was captured, measured as a number of
+milliseconds since some time in the past.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat_value.3.html">nng_stat_value(3)</a>,
+<a href="nng_clock.3supp.html">nng_clock(3supp)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_type.3.html b/man/v1.2.4/nng_stat_type.3.html
new file mode 100644
index 00000000..333ddf49
--- /dev/null
+++ b/man/v1.2.4/nng_stat_type.3.html
@@ -0,0 +1,159 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_type(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_type(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_type - get statistic type</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-k">enum</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_STAT_SCOPE</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_STAT_LEVEL</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_STAT_COUNTER</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_STAT_STRING</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_STAT_BOOLEAN</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_STAT_ID</span>
+<span class="tok-p">};</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stat_type</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_type()</code> function returns the type of the statistic <em>stat</em>.</p>
+</div>
+<div class="paragraph">
+<p>The returned type will be one of the following values:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_STAT_SCOPE</code></dt>
+<dd>
+<p>This is a placeholder providing scope, and carries no value on its own.
+Instead it is a parent node with child statistics (see
+<a href="nng_stat_child.3.html"><code>nng_stat_child()</code></a>.)</p>
+</dd>
+<dt class="hdlist1"><code>NNG_STAT_LEVEL</code></dt>
+<dd>
+<p>This is a numeric statistic, but its value is a level, so rate calculations
+based on changes in this value should not be considered significant.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_STAT_COUNTER</code></dt>
+<dd>
+<p>This is a numeric statistic that represents an increasing count, typically
+of events, messages, or bytes.
+Frequently, it is interesting to consider changes in this statistic divided
+by time to obtain a rate.
+(For example, throughput might be calculated as changes in a byte counter
+divided by the interval over which the change occurred.)</p>
+</dd>
+<dt class="hdlist1"><code>NNG_STAT_STRING</code></dt>
+<dd>
+<p>This is a string, and carries no numeric value.
+Instead the <a href="nng_stat_string.3.html"><code>nng_stat_string()</code></a> function
+should be used to obtain the value.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_STAT_BOOLEAN</code></dt>
+<dd>
+<p>This is a boolean value.
+The <a href="nng_stat_value.3.html"><code>nng_stat_value()</code></a> function will return zero
+to represent a <code>false</code> value, and one to represent a <code>true</code> value.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p><code>NNG_STAT_ID</code>:
+The statistic is a numeric ID.
+These are generally immutable values that represent an identity that might
+be used with another interface.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+For <code>NNG_STAT_COUNTER</code> and <code>NNG_STAT_LEVEL</code> statistics, the
+<a href="nng_stat_unit.3.html"><code>nng_stat_unit()</code></a> function will provide more
+detail about the units measured by the static.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The statistic type for <em>stat</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat_string.3.html">nng_stat_string(3)</a>,
+<a href="nng_stat_unit.3.html">nng_stat_unit(3)</a>,
+<a href="nng_stat_value.3.html">nng_stat_value(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_unit.3.html b/man/v1.2.4/nng_stat_unit.3.html
new file mode 100644
index 00000000..e285fb44
--- /dev/null
+++ b/man/v1.2.4/nng_stat_unit.3.html
@@ -0,0 +1,150 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_unit(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_unit(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_unit - get statistic unit</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-k">enum</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_UNIT_NONE</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_UNIT_BYTES</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_UNIT_MESSAGES</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_UNIT_MILLIS</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_UNIT_EVENTS</span>
+<span class="tok-p">};</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stat_unit</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_unit()</code> function returns the unit of quantity measured
+by the statistic <em>stat</em>.</p>
+</div>
+<div class="paragraph">
+<p>The returned value will be one of the following values:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_UNIT_NONE</code></dt>
+<dd>
+<p>There are no particular units measured.
+In some cases there may be units, but the type of the unit will be obvious
+from the name (see <a href="nng_stat_name.3.html"><code>nng_stat_name()</code></a>) of the statistic.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_UNIT_BYTES</code></dt>
+<dd>
+<p>The statistic is a count of bytes.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_UNIT_MESSAGES</code></dt>
+<dd>
+<p>The statistic is a count of messages.
+Typically, one message corresponds to a single <a href="nng_msg.5.html"><code>nng_msg</code></a> structure.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_UNIT_MILLIS</code></dt>
+<dd>
+<p>The statistic is a count of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_STAT_EVENTS</code></dt>
+<dd>
+<p>The statistic is a count of some other type of event.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>For statistics that are neither <code>NNG_STAT_COUNTER</code> nor <code>NNG_STAT_LEVEL</code>
+type (see <a href="nng_stat_type.3.html"><code>nng_stat_type()</code></a>), the unit will
+generally be <code>NNG_UNIT_NONE</code>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Normally rates can be calculated for <code>NNG_STAT_COUNTER</code> values for
+any of these units, but for <code>NNG_UNIT_MILLIS</code> rate calculations are generally
+meaningless.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The units measured by <em>stat</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat_name.3.html">nng_stat_name(3)</a>,
+<a href="nng_stat_type.3.html">nng_stat_type(3)</a>,
+<a href="nng_stat_value.3.html">nng_stat_value(3)</a>,
+<a href="nng_msg.5.html">nng_msg(5)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stat_value.3.html b/man/v1.2.4/nng_stat_value.3.html
new file mode 100644
index 00000000..3c211561
--- /dev/null
+++ b/man/v1.2.4/nng_stat_value.3.html
@@ -0,0 +1,94 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stat_value(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stat_value(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stat_value - get statistic value</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-kt">uint64_t</span> <span class="tok-nf">nng_stat_value</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-n">stat</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_value()</code> function returns a numeric value for the statistic <em>stat</em>.
+If the statistic has a boolean value, then zero is returned for <code>false</code>, and
+one is returned for <code>true</code>.
+Otherwise, if the statistic is not of numeric type, then zero is returned.
+See <a href="nng_stat_type.3.html"><code>nng_stat_type()</code></a> for a description of statistic types.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The numeric or boolean value associated with <em>stat</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat_type.3.html">nng_stat_type(3)</a>,
+<a href="nng_stat_unit.3.html">nng_stat_unit(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stats_free.3.html b/man/v1.2.4/nng_stats_free.3.html
new file mode 100644
index 00000000..a552c9d8
--- /dev/null
+++ b/man/v1.2.4/nng_stats_free.3.html
@@ -0,0 +1,104 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stats_free(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stats_free(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stats_free - free statistics snapshot</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stats_free</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">*</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stats_free()</code> function deallocates a statistics snapshot
+previously collected with
+<a href="nng_stats_get.3.html"><code>nng_stats_get()</code></a>.
+After calling this, all values associated with the snapshot are
+invalidated.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Only the top of the collected statistics tree can be
+freed using this function.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_stats_get.3.html">nng_stats_get(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stats_get.3.html b/man/v1.2.4/nng_stats_get.3.html
new file mode 100644
index 00000000..87e6b801
--- /dev/null
+++ b/man/v1.2.4/nng_stats_get.3.html
@@ -0,0 +1,177 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stats_get(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stats_get(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stats_get - get statistics snapshot</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stat</span> <span class="tok-n">nng_stat</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-n">nng_stats_get</span><span class="tok-p">(</span><span class="tok-n">nng_stat</span> <span class="tok-o">**</span><span class="tok-n">statsp</span><span class="tok-p">)</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stat_get()</code> function attempts to obtain a snapshot of all the
+various diagnostic statistics that are present in the system.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The process of collecting statistics is designed to have minimal
+impact on the system, but there is still some impact.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The statistics are organized as a tree, rooted with a parent
+statistic of type <code>NNG_STAT_SCOPE</code> that carries no value, and which
+has an empty name.
+This parent statistic is returned through the <em>statsp</em> pointer.</p>
+</div>
+<div class="paragraph">
+<p>The <a href="nng_stat_child.3.html"><code>nng_stat_child()</code></a> and
+<a href="nng_stat_next.3.html"><code>nng_stat_next()</code></a> function can be used to
+iterate over the the tree.</p>
+</div>
+<div class="paragraph">
+<p>When no longer needed, the statistics can be freed with the
+<a href="nng_stats_free.3.html"><code>nng_stats_free()</code></a> function, but that
+function must be called only with the root statistic that is returned
+through the <em>statsp</em> pointer.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The values of individual statistics are guaranteed to be atomic,
+but due the way statistics are collected there can be discrepancies between them at certain times.
+For example, statistics counting bytes and messages received may not
+reflect the same number of messages, depending on when the snapshot is taken.
+This potential inconsistency arises as a result of optimizations to minimize
+the impact of statistics on actual operations.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The names, values, and semantics of statistics provided may change
+from release to release.
+These are provided for informational and debugging use only, and applications
+should not rely on the presence, names, or meanings of any individual statistics.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns a pointer to the allocated memory on success,
+and <code>NULL</code> otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to collect statistics.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>Statistics are not supported (compile time option).</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_stats_free.3.html">nng_stats_free(3)</a>,
+<a href="nng_stat_child.3.html">nng_stat_child(3)</a>,
+<a href="nng_stat_desc.3.html">nng_stat_desc(3)</a>,
+<a href="nng_stat_name.3.html">nng_stat_name(3)</a>,
+<a href="nng_stat_next.3.html">nng_stat_next(3)</a>,
+<a href="nng_stat_string.3.html">nng_stat_string(3)</a>,
+<a href="nng_stat_type.3.html">nng_stat_type(3)</a>,
+<a href="nng_stat_timestamp.3.html">nng_stat_timestamp(3)</a>,
+<a href="nng_stat_unit.3.html">nng_stat_unit(3)</a>,
+<a href="nng_stat_value.3.html">nng_stat_value(3)</a>,
+<a href="nng_stat.5.html">nng_stat(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_strdup.3.html b/man/v1.2.4/nng_strdup.3.html
new file mode 100644
index 00000000..0e49fa01
--- /dev/null
+++ b/man/v1.2.4/nng_strdup.3.html
@@ -0,0 +1,111 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_strdup(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_strdup(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_strdup - duplicate string</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-nf">nng_strdup</span><span class="tok-p">(</span><span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">src</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_strdup()</code> duplicates the string <em>src</em> and returns it.</p>
+</div>
+<div class="paragraph">
+<p>This is logically equivalent to using <a href="nng_alloc.3.html"><code>nng_alloc()</code></a>
+to allocate a region of memory of <code>strlen(s) + 1</code> bytes, and then
+using <code>strcpy()</code> to copy the string into the destination before
+returning it.</p>
+</div>
+<div class="paragraph">
+<p>The returned string should be deallocated with
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a>, or may be deallocated using the
+<a href="nng_free.3.html"><code>nng_free()</code></a> using the length of the returned string plus
+one (for the <code>NUL</code> terminating byte).</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Do not use the system <code>free()</code> or similar functions to deallocate
+the string, since those may use a different memory arena!
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the new string on success, and <code>NULL</code> on failure.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>No errors are returned, but a <code>NULL</code> return value should be
+treated the same as <code>NNG_ENOMEM</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_alloc.3.html">nng_alloc(3)</a>,
+<a href="nng_free.3.html">nng_free(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream.5.html b/man/v1.2.4/nng_stream.5.html
new file mode 100644
index 00000000..aabba50c
--- /dev/null
+++ b/man/v1.2.4/nng_stream.5.html
@@ -0,0 +1,137 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream - byte stream</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stream</span> <span class="tok-n">nng_stream</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_stream</code> represents a byte stream.
+This may correspond to an underlying connection such a TCP connection or
+a connected UNIX domain socket or named pipe.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <code>nng_stream</code> object is used for raw byte stream connections, and
+should not be confused with a pipe object created on
+<a href="nng_socket.5.html">socket</a> using the
+<a href="nng_listen.3.html"><code>nng_listen()</code></a>,
+<a href="nng_dial.3.html"><code>nng_dial()</code></a> or related functions.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>These objects are created either establishing an outgoing connection
+with
+<a href="nng_stream_dialer_dial.3str.html"><code>nng_stream_dialer_dial()</code></a>
+or by accepting in incoming connection with
+<a href="nng_stream_listener_accept.3str.html"><code>nng_stream_listener_accept()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Byte streams are &#8220;reliable&#8221; in that data
+will not be delivered out of order, or with portions missing.</p>
+</div>
+<div class="paragraph">
+<p>Data can be sent using
+<a href="nng_stream_send.3str.html"><code>nng_stream_send()</code></a> or
+received with
+<a href="nng_stream_recv.3str.html"><code>nng_stream_recv()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>When the connection is no longer needed, it should be freed with
+<a href="nng_stream_free.3str.html"><code>nng_stream_free()</code></a>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is possible to close the connection, without freeing it, by
+using
+<a href="nng_stream_close.3str.html"><code>nng_stream_close()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Byte streams may, depending on the underlying technology,
+support various
+<a href="nng_options.5.html">options</a>, which
+can be accessed using the
+<a href="nng_stream_get.3str.html"><code>nng_stream_get()</code></a> and
+<a href="nng_stream_set.3str.html"><code>nng_stream_set()</code></a> family of
+functions.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_stream_close.3str.html">nng_stream_close(3str)</a>,
+<a href="nng_stream_dialer_dial.3str.html">nng_stream_dialer_dial(3str)</a>,
+<a href="nng_stream_free.3str.html">nng_stream_free(3str)</a>,
+<a href="nng_stream_getopt.3str.html">nng_stream_getopt(3str)</a>,
+<a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept(3str)</a>,
+<a href="nng_stream_recv.3str.html">nng_stream_recv(3str)</a>,
+<a href="nng_stream_send.3str.html">nng_stream_send(3str)</a>,
+<a href="nng_stream_setopt.3str.html">nng_stream_setopt(3str)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng.7.html">nng(7)</a>,</p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_close.3str.html b/man/v1.2.4/nng_stream_close.3str.html
new file mode 100644
index 00000000..a1b91dc1
--- /dev/null
+++ b/man/v1.2.4/nng_stream_close.3str.html
@@ -0,0 +1,128 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_close(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_close(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_close - close byte stream</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_close</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_close()</code> function closes the
+<a href="nng_stream.5.html">byte stream</a> <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>If any operations are pending, such as
+<a href="nng_stream_send.3str.html"><code>nng_stream_send()</code></a>
+or
+<a href="nng_stream_recv.3str.html"><code>nng_stream_recv()</code></a>,
+they will be terminated with
+an <code>NNG_ECLOSED</code> error condition.
+Also, any new operations will fail with <code>NNG_ECLOSED</code> after the connection
+is closed.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Closing the connection while data is in transmission will likely
+lead to loss of that data.
+There is no automatic linger or flush to ensure that the socket send buffers
+have completely transmitted.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Closing the connection does not free the resources associated with it.
+Once it is certain that no more operations are pending on the connection,
+it should be freed with
+<a href="nng_stream_free.3str.html"><code>nng_stream_free()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_free.3str.html">nng_stream_free(3str)</a>,
+<a href="nng_stream_recv.3str.html">nng_stream_recv(3str)</a>,
+<a href="nng_stream_send.3str.html">nng_stream_send(3str)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_dialer.5.html b/man/v1.2.4/nng_stream_dialer.5.html
new file mode 100644
index 00000000..d6c9a735
--- /dev/null
+++ b/man/v1.2.4/nng_stream_dialer.5.html
@@ -0,0 +1,88 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_dialer(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_dialer(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_dialer - byte stream dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stream_dialer</span> <span class="tok-n">nng_stream_dialer</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_stream_dialer</code> is a handle to a &#8220;dialer&#8221; for byte streams,
+and is responsible for creating
+<a href="nng_stream.5.html"><code>nng_stream</code></a> objects (corresponding to connected byte
+streams) by connecting to remote peers.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <code>nng_stream_dialer</code> object is used for low-level byte stream
+connections, and should not be confused with a high-level
+<a href="nng_dialer.5.html"><code>nng_dialer</code></a> object.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_stream_dialer_alloc.3str.html">nng_stream_dialer_alloc(3str)</a>,
+<a href="nng_stream_dialer_close.3str.html">nng_stream_dialer_close(3str)</a>,
+<a href="nng_stream_dialer_dial.3str.html">nng_stream_dialer_dial(3str)</a>,
+<a href="nng_stream_dialer_free.3str.html">nng_stream_dialer_free(3str)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a>,
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_dialer_alloc.3str.html b/man/v1.2.4/nng_stream_dialer_alloc.3str.html
new file mode 100644
index 00000000..10a69795
--- /dev/null
+++ b/man/v1.2.4/nng_stream_dialer_alloc.3str.html
@@ -0,0 +1,136 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_dialer_alloc(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_dialer_alloc(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_dialer_alloc - allocate byte stream dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">**</span><span class="tok-n">dp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">addr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_alloc_url</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">**</span><span class="tok-n">dp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions allocates a dialer for byte streams.
+Dialers create
+<a href="nng_stream.5.html"><code>nng_stream</code></a> objects by initiating outgoing
+connections, via the
+<a href="nng_stream_dialer_dial.3str.html"><code>nng_stream_dialer_dial()</code></a> function.</p>
+</div>
+<div class="paragraph">
+<p>The first form, <code>nng_stream_dialer_alloc()</code>, connects to the address
+specified by <em>addr</em>, which should be a string representing a URL.</p>
+</div>
+<div class="paragraph">
+<p>The second form, <code>nng_stream_dialer_alloc_url()</code>, takes a pre-parsed
+or pre-constructed
+<a href="nng_url.5.html"><code>nng_url</code></a> object to determine the remote address.</p>
+</div>
+<div class="paragraph">
+<p>These functions may support different URL schemes, such as
+<code>ipc://</code>, <code>tcp://</code>, <code>tls+tcp://</code>, or <code>ws://</code>.</p>
+</div>
+<div class="paragraph">
+<p>Both forms store the dialer in the location referenced by <em>dp</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The URL scheme is not supported by the implementation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The URL requested is invalid.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_dialer_close.3str.html">nng_stream_dialer_close(3str)</a>
+<a href="nng_stream_dialer_dial.3str.html">nng_stream_dialer_dial(3str)</a>
+<a href="nng_stream_dialer_free.3str.html">nng_stream_dialer_free(3str)</a>
+<a href="nng_stream_dialer_get.3str.html">nng_stream_dialer_get(3str)</a>
+<a href="nng_stream_dialer_set.3str.html">nng_stream_dialer_set(3str)</a>
+<a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_dialer_close.3str.html b/man/v1.2.4/nng_stream_dialer_close.3str.html
new file mode 100644
index 00000000..67731b44
--- /dev/null
+++ b/man/v1.2.4/nng_stream_dialer_close.3str.html
@@ -0,0 +1,114 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_dialer_close(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_dialer_close(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_dialer_close - close byte stream dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_dialer_close</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_dialer_close()</code> function closes the supplied byte stream
+dialer <em>d</em>,
+but does not free the underlying resources associated with it.</p>
+</div>
+<div class="paragraph">
+<p>If any
+<a href="nng_stream_dialer_dial.3str.html">dial</a>
+operations using <em>d</em> are
+in progress, they will be terminated with an <code>NNG_ECLOSED</code> error condition.</p>
+</div>
+<div class="paragraph">
+<p>Furthermore any future accesses to the dialer <em>d</em> will also result in
+<code>NNG_ECLOSED</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function does not release the memory for the dialer, so the
+application should still free the memory using
+<a href="nng_stream_dialer_free.3str.html"><code>nng_stream_dialer_free()</code></a>
+once it is certain that nothing else is using it.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_dialer_alloc.3str.html">nng_stream_dialer_alloc(3str)</a>,
+<a href="nng_stream_dialer_dial.3str.html">nng_stream_dialer_dial(3str)</a>,
+<a href="nng_stream_dialer_free.3str.html">nng_stream_dialer_free(3str)</a>,
+<a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_dialer_dial.3str.html b/man/v1.2.4/nng_stream_dialer_dial.3str.html
new file mode 100644
index 00000000..972c09c6
--- /dev/null
+++ b/man/v1.2.4/nng_stream_dialer_dial.3str.html
@@ -0,0 +1,161 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_dialer_dial(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_dialer_dial(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_dialer_dial - initiate outgoing byte stream connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_dialer_dial</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_dialer_dial()</code> attempts to establish a connection to the
+remote peer for the dialer <em>d</em>.
+The operation is completed asynchronously, using <em>aio</em>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The peer address is determined by the address specified using
+<a href="nng_stream_dialer_alloc.3str.html"><code>nng_stream_dialer_alloc()</code></a> or
+<a href="nng_stream_dialer_alloc_url.3str.html"><code>nng_stream_dialer_alloc_url()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>If a connection is successfully established, the <em>aio</em> will have the
+resulting
+<a href="nng_stream.5.html"><code>nng_stream</code></a> object stored as its first output.
+(See
+<a href="nng_aio_get_output.3.html"><code>nng_aio_get_output()</code></a>.)</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The address specified is invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The dialer is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNREFUSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was refused by the server.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The connection was reset by the server.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_dialer_alloc.3str.html">nng_stream_dialer_alloc(3str)</a>,
+<a href="nng_stream_dialer_close.3str.html">nng_stream_dialer_close(3str)</a>,
+<a href="nng_stream_dialer_free.3str.html">nng_stream_dialer_free(3str)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a>,
+<a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_dialer_free.3str.html b/man/v1.2.4/nng_stream_dialer_free.3str.html
new file mode 100644
index 00000000..8f4278ee
--- /dev/null
+++ b/man/v1.2.4/nng_stream_dialer_free.3str.html
@@ -0,0 +1,107 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_dialer_free(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_dialer_free(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_dialer_free - free byte stream dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_dialer_free</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_dialer_free()</code> function closes the supplied
+byte stream dialer <em>d</em>,
+and frees the underlying resources associated with it.</p>
+</div>
+<div class="paragraph">
+<p>If any
+<a href="nng_stream_dialer_dial.3str.html">dial</a> operations using <em>d</em> are
+in progress, they will be terminated with an <code>NNG_ECLOSED</code> error condition.</p>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+It is important that the application ensure that no further accesses
+are made to <em>d</em>, as the memory backing it will be reclaimed for other uses.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_dialer_alloc.3str.html">nng_stream_dialer_alloc(3str)</a>,
+<a href="nng_stream_dialer_close.3str.html">nng_stream_dialer_close(3str)</a>,
+<a href="nng_stream_dialer_dial.3str.html">nng_stream_dialer_dial(3str)</a>,
+<a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_dialer_get.3str.html b/man/v1.2.4/nng_stream_dialer_get.3str.html
new file mode 100644
index 00000000..40c2a520
--- /dev/null
+++ b/man/v1.2.4/nng_stream_dialer_get.3str.html
@@ -0,0 +1,256 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_dialer_get(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_dialer_get(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_dialer_get - get option from byte stream dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">sizep</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_addr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_dialer_get()</code> functions are used to retrieve option values for the
+<a href="nng_stream_dialer.5.html">byte stream dialer</a> <em>d</em>.</p>
+</div>
+<div class="paragraph">
+<p>The actual options that may be retrieved in this way vary.
+A number of them are documented in
+<a href="nng_options.5.html">nng_options(5)</a> and additional linked documents.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the connected
+byte stream dialer <em>d</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_stream_dialer_get()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced by
+<em>sizep</em>.</p>
+<div class="paragraph">
+<p>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 referenced by <em>sizep</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in <em>sizep</em> does not exceed the original buffer size.</p>
+</div>
+<div class="paragraph">
+<p>It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>sizep</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time
+<a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer to structured data.
+The data referenced is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Care must be taken to ensure that the application respects any
+considerations about the lifetime of the underyling object.
+See the documentation for the option for more specific guidance.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_addr()</code></dt>
+<dd>
+<p>This function is used to retrieve a
+<a href="nng_sockaddr.5.html">socket address</a>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a <code>NULL</code>-terminated string.
+This string is created from the source using
+<a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value.
+This is typically used for identifiers, network
+numbers, and similar options.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The dialer is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>There was insufficient space to receive the object.
+The amount of data actually needed is returned in <em>sizep</em>.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option may not read.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_dialer_set.3str.html">nng_stream_dialer_set(3str)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_dialer_set.3str.html b/man/v1.2.4/nng_stream_dialer_set.3str.html
new file mode 100644
index 00000000..8f17fd93
--- /dev/null
+++ b/man/v1.2.4/nng_stream_dialer_set.3str.html
@@ -0,0 +1,243 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_dialer_set(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_dialer_set(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_dialer_set - set option on byte stream dialer</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">name</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_bool</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_int</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_ms</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_size</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_string</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_dialer_set_addr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_dialer</span> <span class="tok-o">*</span><span class="tok-n">d</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_dialer_set()</code> functions are used to configure options for the
+<a href="nng_stream.5.html">byte stream dialer</a> <em>d</em>.
+The actual options that may be configured in this way vary, and are
+specified by <em>opt</em>.
+A number of them are documented in
+<a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_stream_dialer_set()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>size</em> is the
+size of the objected located at <em>val</em>.</p>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+the type
+<a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer to structured data.
+The data referenced by is generally managed by other functions.
+For example, TLS configuration objects created with
+<a href="nng_tls_config.3tls.html"><code>nng_tls_config_alloc()</code></a>
+can be passed this way.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+Please see the documentation for the specific option for further details.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value/
+This is typically used for identifiers, network numbers,
+and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_dialer_set_addr()</code></dt>
+<dd>
+<p>This function is used to configure a
+<a href="nng_sockaddr.5.html">socket address</a>.
+The value is copied, and thus the caller may discard the supplied
+value immediately after this function returns.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The dialer is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Either <em>data</em> or <em>size</em> are invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option may not be modified.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_dialer_get.3str.html">nng_stream_dialer_get(3str)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_ipc_options.5.html">nng_ipc_options(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng_tls_options.5.html">nng_tls_options(5)</a>,
+<a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_free.3str.html b/man/v1.2.4/nng_stream_free.3str.html
new file mode 100644
index 00000000..6ee5e5e8
--- /dev/null
+++ b/man/v1.2.4/nng_stream_free.3str.html
@@ -0,0 +1,124 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_free(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_free(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_free - free byte stream</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_free</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_free()</code> function closes the
+<a href="nng_stream.5.html">byte stream</a> <em>s</em>,
+and frees the underlying resources associated with it.</p>
+</div>
+<div class="paragraph">
+<p>If any operations are pending, such as
+<a href="nng_stream_send.3str.html"><code>nng_stream_send()</code></a>
+or
+<a href="nng_stream_recv.3str.html"><code>nng_stream_recv()</code></a>,
+they will be terminated with an <code>NNG_ECLOSED</code> error condition.</p>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+It is important that the application ensure that no further accesses
+are made to <em>s</em>, as the memory backing it will be reclaimed for other uses.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Closing the connection while data is in transmission will likely
+lead to loss of that data.
+There is no automatic linger or flush to ensure that the socket send buffers
+have completely transmitted.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_close.3str.html">nng_stream_close(3str)</a>,
+<a href="nng_stream_recv.3str.html">nng_stream_recv(3str)</a>,
+<a href="nng_stream_send.3str.html">nng_stream_send(3str)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_get.3str.html b/man/v1.2.4/nng_stream_get.3str.html
new file mode 100644
index 00000000..763e3441
--- /dev/null
+++ b/man/v1.2.4/nng_stream_get.3str.html
@@ -0,0 +1,259 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_get(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_get(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_get - get option from byte stream</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">sizep</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_addr</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_get()</code> functions are used to retrieve option values for the
+<a href="nng_stream.5.html">byte stream</a> <em>conn</em>.</p>
+</div>
+<div class="paragraph">
+<p>The actual options that may be retrieved in this way vary.
+A number of them are documented in
+<a href="nng_options.5.html">nng_options(5)</a> and additional linked documents.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the connected
+byte stream <em>s</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_stream_get()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced by
+<em>sizep</em>.</p>
+<div class="paragraph">
+<p>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 referenced by <em>sizep</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in <em>sizep</em> does not exceed the original buffer size.</p>
+</div>
+<div class="paragraph">
+<p>It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>sizep</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time
+<a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer to structured data.
+The data referenced is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Care must be taken to ensure that the application respects any
+considerations about the lifetime of the underyling object.
+See the documentation for the option for more specific guidance.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_addr()</code></dt>
+<dd>
+<p>This function is used to retrieve a
+<a href="nng_sockaddr.5.html">socket address</a>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a <code>NULL</code>-terminated string.
+This string is created from the source using
+<a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value.
+This is typically used for identifiers, network
+numbers, and similar options.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>There was insufficient space to receive the object.
+The amount of data actually needed is returned in <em>sizep</em>.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option may not read.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_set.3str.html">nng_stream_set(3str)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_ipc_options.5.html">nng_ipc_options(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng_tls_options.5.html">nng_tls_options(5)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener.5.html b/man/v1.2.4/nng_stream_listener.5.html
new file mode 100644
index 00000000..835e484e
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener.5.html
@@ -0,0 +1,90 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener - byte stream listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_stream_listener</span> <span class="tok-n">nng_stream_listener</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+An <code>nng_stream_listener</code> is a handle to a byte stream &#8220;listener&#8221;,
+which is responsible for accepting incoming connections and creating
+corresponding
+<a href="nng_stream.5.html"><code>nng_stream</code></a> from them.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <code>nng_stream_listener</code> object is a low-level object for
+raw byte stream connections,
+and should not be confused with a high-level
+<a href="nng_listener.5.html"><code>nng_listener</code></a> object.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept(3str)</a>,
+<a href="nng_stream_listener_alloc.3str.html">nng_stream_listener_alloc(3str)</a>,
+<a href="nng_stream_listener_close.3str.html">nng_stream_listener_close(3str)</a>,
+<a href="nng_stream_listener_free.3str.html">nng_stream_listener_free(3str)</a>,
+<a href="nng_stream_listener_listen.3str.html">nng_stream_listener_listen(3str)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a>,
+<a href="nng_stream_dialer.5.html">nng_stream_dialer(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener_accept.3str.html b/man/v1.2.4/nng_stream_listener_accept.3str.html
new file mode 100644
index 00000000..5e1b28cc
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener_accept.3str.html
@@ -0,0 +1,144 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener_accept(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener_accept(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener_accept - accept incoming byte stream connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_listener_accept</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_listener_accept()</code> attempts to accept an incoming byte stream
+connection from a remote peer, using the listener <em>l</em>.
+The operation is completed asynchronously, using <em>aio</em>.</p>
+</div>
+<div class="paragraph">
+<p>This operation can only be done after the listener is already
+<a href="nng_stream_listener_listen.3str.html">listening</a>.</p>
+</div>
+<div class="paragraph">
+<p>If a connection is successfully established, the <em>aio</em> will have the
+resulting
+<a href="nng_stream.5.html"><code>nng_stream</code></a> object stored as its first output,
+which can be retrieved with
+<a href="nng_aio_get_output.3.html"><code>nng_aio_get_output()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was aborted.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The listener is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The connection was reset by the peer.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The listener is not not listening.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_listener_alloc.3str.html">nng_stream_listener_alloc(3str)</a>,
+<a href="nng_stream_listener_close.3str.html">nng_stream_listener_close(3str)</a>,
+<a href="nng_stream_listener_free.3str.html">nng_stream_listener_free(3str)</a>,
+<a href="nng_stream_listener_listen.3str.html">nng_stream_listener_listen(3str)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a>,
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener_alloc.3str.html b/man/v1.2.4/nng_stream_listener_alloc.3str.html
new file mode 100644
index 00000000..e92b258d
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener_alloc.3str.html
@@ -0,0 +1,138 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener_alloc(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener_alloc(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener_alloc - allocate byte stream listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">**</span><span class="tok-n">lp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">addr</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_alloc_url</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">**</span><span class="tok-n">lp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions allocates a listener for byte streams.
+Listeners create
+<a href="nng_stream.5.html"><code>nng_stream</code></a> objects by accepting incoming
+connections, via the
+<a href="nng_stream_listener_accept.3str.html"><code>nng_stream_listener_accept()</code></a>
+function.</p>
+</div>
+<div class="paragraph">
+<p>The first form, <code>nng_stream_listener_alloc()</code>, connects to the address
+specified by <em>addr</em>, which should be a string representing a URL.</p>
+</div>
+<div class="paragraph">
+<p>The second form, <code>nng_stream_listener_alloc_url()</code>, takes a pre-parsed
+or pre-constructed
+<a href="nng_url.5.html"><code>nng_url</code></a> object to determine the remote address.</p>
+</div>
+<div class="paragraph">
+<p>These functions may support different URL schemes, such as
+<code>ipc://</code>, <code>tcp://</code>, <code>tls+tcp://</code>, or <code>ws://</code>.</p>
+</div>
+<div class="paragraph">
+<p>Both forms store the listener in the location referenced by <em>lp</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The URL scheme is not supported by the implementation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The URL requested is invalid.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept(3str)</a>
+<a href="nng_stream_listener_close.3str.html">nng_stream_listener_close(3str)</a>
+<a href="nng_stream_listener_free.3str.html">nng_stream_listener_free(3str)</a>
+<a href="nng_stream_listener_get.3str.html">nng_stream_listener_get(3str)</a>
+<a href="nng_stream_listener_listen.3str.html">nng_stream_listener_listen(3str)</a>
+<a href="nng_stream_listener_set.3str.html">nng_stream_listener_set(3str)</a>
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener_close.3str.html b/man/v1.2.4/nng_stream_listener_close.3str.html
new file mode 100644
index 00000000..5cdc4ce3
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener_close.3str.html
@@ -0,0 +1,114 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener_close(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener_close(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener_close - close byte stream listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_listener_close</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_listener_close()</code> function closes the supplied connected byte
+stream listener <em>l</em>,
+but does not free the underlying resources associated with it.</p>
+</div>
+<div class="paragraph">
+<p>If any
+<a href="nng_stream_listener_accept.3str.html">accept</a>
+operations using <em>d</em> are
+in progress, they will be terminated with an <code>NNG_ECLOSED</code> error condition.</p>
+</div>
+<div class="paragraph">
+<p>Furthermore any future accesses to the listener <em>l</em> will also result in
+<code>NNG_ECLOSED</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This function does not release the memory for the listener, so the
+application should still free the memory using
+<a href="nng_stream_listener_free.3str.html"><code>nng_stream_listener_free()</code></a>
+once it is certain that nothing else is using it.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept(3str)</a>,
+<a href="nng_stream_listener_alloc.3str.html">nng_stream_listener_alloc(3str)</a>,
+<a href="nng_stream_listener_free.3str.html">nng_stream_listener_free(3str)</a>,
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener_free.3str.html b/man/v1.2.4/nng_stream_listener_free.3str.html
new file mode 100644
index 00000000..e338ff57
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener_free.3str.html
@@ -0,0 +1,107 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener_free(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener_free(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener_free - free byte stream listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_listener_free</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-p">)</span><span class="tok-n">l</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_listener_free()</code> function closes the supplied
+byte stream listener <em>l</em>,
+and frees the underlying resources associated with it.</p>
+</div>
+<div class="paragraph">
+<p>If any
+<a href="nng_stream_listener_accept.3str.html">accept</a> operations using __l are
+in progress, they will be terminated with an <code>NNG_ECLOSED</code> error condition.</p>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+It is important that the application ensure that no further accesses
+are made to <em>l</em>, as the memory backing it will be reclaimed for other uses.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept(3str)</a>,
+<a href="nng_stream_listener_alloc.3str.html">nng_stream_listener_alloc(3str)</a>,
+<a href="nng_stream_listener_close.3str.html">nng_stream_listener_close(3str)</a>,
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener_get.3str.html b/man/v1.2.4/nng_stream_listener_get.3str.html
new file mode 100644
index 00000000..18f7fda5
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener_get.3str.html
@@ -0,0 +1,257 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener_get(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener_get(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener_get - get option from byte stream listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">sizep</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_bool</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_int</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_ms</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">**</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_size</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_addr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_string</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">char</span> <span class="tok-o">**</span><span class="tok-n">valp</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_get_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-o">*</span><span class="tok-n">valp</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_listener_get()</code> functions are used to retrieve option values
+for the
+<a href="nng_stream_listener.5.html">byte stream listener</a> <em>l</em>.</p>
+</div>
+<div class="paragraph">
+<p>The actual options that may be retrieved in this way vary.
+A number of them are documented in
+<a href="nng_options.5.html">nng_options(5)</a> and additional linked documents.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<p>In all of these forms, the option <em>opt</em> is retrieved from the connected
+byte stream listener <em>l</em>.
+The forms vary based on the type of the option they take.</p>
+</div>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_stream_listener_get()</code></dt>
+<dd>
+<p>This function is untyped and can be used to retrieve the value of any option.
+The caller must store a pointer to a buffer to receive the value in <em>val</em>,
+and the size of the buffer shall be stored at the location referenced by
+<em>sizep</em>.</p>
+<div class="paragraph">
+<p>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 referenced by <em>sizep</em>.
+If the caller&#8217;s buffer is not large enough to hold the entire object,
+then the copy is truncated.
+Therefore the caller should check for truncation by verifying that the
+returned size in <em>sizep</em> does not exceed the original buffer size.</p>
+</div>
+<div class="paragraph">
+<p>It is acceptable to pass <code>NULL</code> for <em>val</em> if the value in <em>sizep</em> is zero.
+This can be used to determine the size of the buffer needed to receive
+the object.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_ms()</code></dt>
+<dd>
+<p>This function is used to retrieve time
+<a href="nng_duration.5.html">durations</a>
+(such as timeouts), stored as a number of milliseconds.
+(The special value <code>NNG_DUR_INFINITE</code> means an infinite amount of time, and
+the special value <code>NNG_DUR_DEFAULT</code> means a context-specific default.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_ptr()</code></dt>
+<dd>
+<p>This function is used to retrieve a pointer to structured data.
+The data referenced is generally managed using other functions.
+Note that this form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Care must be taken to ensure that the application respects any
+considerations about the lifetime of the underyling object.
+See the documentation for the option for more specific guidance.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_size()</code></dt>
+<dd>
+<p>This function is used to retrieve a size,
+typically for buffer sizes, message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_addr()</code></dt>
+<dd>
+<p>This function is used to retrieve a
+<a href="nng_sockaddr.5.html">socket address</a>.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_string()</code></dt>
+<dd>
+<p>This function is used to retrieve a <code>NULL</code>-terminated string.
+This string is created from the source using
+<a href="nng_strdup.3.html"><code>nng_strdup()</code></a>
+and consequently must be freed by the caller using
+<a href="nng_strfree.3.html"><code>nng_strfree()</code></a> when it is no longer needed.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_get_uint64()</code></dt>
+<dd>
+<p>This function is used to retrieve a 64-bit unsigned value.
+This is typically used for identifiers, network
+numbers, and similar options.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The listener is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>There was insufficient space to receive the object.
+The amount of data actually needed is returned in <em>sizep</em>.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EWRITEONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option may not read.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_listener_set.3str.html">nng_stream_listener_set(3str)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener_listen.3str.html b/man/v1.2.4/nng_stream_listener_listen.3str.html
new file mode 100644
index 00000000..2c726fa3
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener_listen.3str.html
@@ -0,0 +1,140 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener_listen(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener_listen(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener_listen - bind listener to configured address</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_listen</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_listener_listen()</code> attempts to bind the listener <em>l</em>
+to the local address specified when the listener was created.</p>
+</div>
+<div class="paragraph">
+<p>This must generally be done before accepting incoming connections using
+<a href="nng_stream_listener_accept.3str.html"><code>nng_stream_listener_accept()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>For some transports this will also perform other actiosn. For example,
+with TCP listeners it will configure the
+underlying port into passive mode, ready to
+accept an incoming connection, and established a listen queue
+for receiving incoming connections.</p>
+</div>
+<div class="paragraph">
+<p>If binding the listener requires allocation of an address (for example
+when a TCP port number of zero is specified, indicating that an
+ephemeral port should be used), this operation will allocate that
+resource.
+This can permit retrieval of the selected address using
+<a href="nng_stream_listener_get.3str.html"><code>nng_stream_listener_get()</code></a>,
+typically with the
+<a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a> option.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINUSE</code>
+</td>
+<td class="hdlist2">
+<p>The address is already in use.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EADDRINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The address is invalid or unavailable.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The listener has been closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ESTATE</code>
+</td>
+<td class="hdlist2">
+<p>The listener is already bound.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_stream_listener_accept.3str.html">nng_stream_listener_accept(3str)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_listener_set.3str.html b/man/v1.2.4/nng_stream_listener_set.3str.html
new file mode 100644
index 00000000..51214cc1
--- /dev/null
+++ b/man/v1.2.4/nng_stream_listener_set.3str.html
@@ -0,0 +1,243 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_listener_set(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_listener_set(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_listener_set - set option on byte stream listener</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">name</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_bool</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_int</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_ms</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_size</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_string</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_listener_set_addr</span><span class="tok-p">(</span><span class="tok-n">nng_stream_listener</span> <span class="tok-o">*</span><span class="tok-n">l</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_listener_set()</code> functions are used to configure options for the
+<a href="nng_stream.5.html">byte stream listener</a> <em>l</em>.
+The actual options that may be configured in this way vary, and are
+specified by <em>opt</em>.
+A number of them are documented in
+<a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_stream_listener_set()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>size</em> is the
+size of the objected located at <em>val</em>.</p>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+the type
+<a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer to structured data.
+The data referenced by is generally managed by other functions.
+For example, TLS configuration objects created with
+<a href="nng_tls_config.3tls.html"><code>nng_tls_config_alloc()</code></a>
+can be passed this way.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+Please see the documentation for the specific option for further details.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value/
+This is typically used for identifiers, network numbers,
+and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_listener_set_addr()</code></dt>
+<dd>
+<p>This function is used to configure a
+<a href="nng_sockaddr.5.html">socket address</a>.
+The value is copied, and thus the caller may discard the supplied
+value immediately after this function returns.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The listener is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Either <em>data</em> or <em>size</em> are invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option may not be modified.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_listener_get.3str.html">nng_stream_listener_get(3str)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_ipc_options.5.html">nng_ipc_options(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng_tls_options.5.html">nng_tls_options(5)</a>,
+<a href="nng_stream_listener.5.html">nng_stream_listener(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_recv.3str.html b/man/v1.2.4/nng_stream_recv.3str.html
new file mode 100644
index 00000000..f12af60a
--- /dev/null
+++ b/man/v1.2.4/nng_stream_recv.3str.html
@@ -0,0 +1,178 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_recv(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_recv(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_recv - receive from byte stream</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_recv</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_recv()</code> function starts an asynchronous receive from the
+<a href="nng_stream.5.html">byte stream</a> <em>s</em>
+into the scatter/gather vector located in the
+asynchronous I/O structure <em>aio</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The
+<a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a> function must have been
+called first, to set the scatter/gather vector for <em>aio</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>,
+and the final result may be obtained via
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="paragraph">
+<p>The I/O operation completes as soon as at least one byte has been
+received, 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
+<a href="nng_aio_count.3.html"><code>nng_aio_count()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNSHUT</code>
+</td>
+<td class="hdlist2">
+<p>Remote peer shutdown after sending data.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>aio</em> does not contain a valid scatter/gather vector.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_close.3str.html">nng_stream_close(3str)</a>,
+<a href="nng_stream_send.3str.html">nng_stream_send(3str)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_send.3str.html b/man/v1.2.4/nng_stream_send.3str.html
new file mode 100644
index 00000000..e18b10ba
--- /dev/null
+++ b/man/v1.2.4/nng_stream_send.3str.html
@@ -0,0 +1,171 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_send(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_send(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_send - send to byte stream</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_stream_send</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-n">nng_aio</span> <span class="tok-o">*</span><span class="tok-n">aio</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_send()</code> function starts an asynchronous send over the
+<a href="nng_stream.5.html">byte stream</a> <em>s</em>
+from the scatter/gather vector located in the
+asynchronous I/O structure <em>aio</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The
+<a href="nng_aio_set_iov.3.html"><code>nng_aio_set_iov()</code></a>
+function must have been
+called first, to set the scatter/gather vector for <em>aio</em>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>This function returns immediately, with no return value.
+Completion of the operation is signaled via the <em>aio</em>, and the final
+result may be obtained via
+<a href="nng_aio_result.3.html"><code>nng_aio_result()</code></a>.
+That result will either be zero or an error code.</p>
+</div>
+<div class="paragraph">
+<p>The I/O operation completes as soon as at least one byte has been
+sent, or an error has occurred.
+Therefore, the number of bytes sent may be less than requested.
+The actual number of bytes sent can be determined with
+<a href="nng_aio_count.3.html"><code>nng_aio_count()</code></a>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECANCELED</code>
+</td>
+<td class="hdlist2">
+<p>The operation was canceled.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection was closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECONNRESET</code>
+</td>
+<td class="hdlist2">
+<p>The peer closed the connection.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The <em>aio</em> does not contain a valid scatter/gather vector.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory to perform the operation.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ETIMEDOUT</code>
+</td>
+<td class="hdlist2">
+<p>Timeout waiting for data from the connection.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_aio_alloc.3.html">nng_aio_alloc(3)</a>,
+<a href="nng_aio_count.3.html">nng_aio_count(3)</a>,
+<a href="nng_aio_result.3.html">nng_aio_result(3)</a>,
+<a href="nng_aio_set_iov.3.html">nng_aio_set_iov(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_close.3str.html">nng_stream_close(3str)</a>,
+<a href="nng_stream_recv.3str.html">nng_stream_recv(3str)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_stream_set.3str.html b/man/v1.2.4/nng_stream_set.3str.html
new file mode 100644
index 00000000..2b70de86
--- /dev/null
+++ b/man/v1.2.4/nng_stream_set.3str.html
@@ -0,0 +1,243 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_stream_set(3str)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_stream_set(3str) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_forms">Forms</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_stream_set - set option on byte stream</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">name</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">data</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">size</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_bool</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">bool</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_int</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">int</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_ms</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-n">nng_duration</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_ptr</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_size</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">size_t</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_string</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_uint64</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-kt">uint64_t</span> <span class="tok-n">val</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_stream_set_addr</span><span class="tok-p">(</span><span class="tok-n">nng_stream</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">opt</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-n">nng_sockaddr</span> <span class="tok-o">*</span><span class="tok-n">val</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_stream_set()</code> functions are used to configure options for the
+<a href="nng_stream.5.html">byte stream</a> <em>s</em>.
+The actual options that may be configured in this way vary, and are
+specified by <em>opt</em>.
+A number of them are documented in
+<a href="nng_options.5.html">nng_options(5)</a>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally some transport-specific and protocol-specific options are
+documented with the transports and protocols themselves.</p>
+</div>
+<div class="sect2">
+<h3 id="_forms">Forms</h3>
+<div class="paragraph">
+<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.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>nng_stream_set()</code></dt>
+<dd>
+<p>This function is untyped, and can be used to configure any arbitrary data.
+The <em>val</em> pointer addresses the data to copy, and <em>size</em> is the
+size of the objected located at <em>val</em>.</p>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It may be easier to use one of the typed forms of this function.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_bool()</code></dt>
+<dd>
+<p>This function is for options which take a Boolean (<code>bool</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_int()</code></dt>
+<dd>
+<p>This function is for options which take an integer (<code>int</code>).</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_ms()</code></dt>
+<dd>
+<p>This function is used to configure time durations (such as timeouts) using
+the type
+<a href="nng_duration.5.html"><code>nng_duration</code></a>.
+The duration is an integer number of milliseconds.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_ptr()</code></dt>
+<dd>
+<p>This function is used to pass a pointer to structured data.
+The data referenced by is generally managed by other functions.
+For example, TLS configuration objects created with
+<a href="nng_tls_config.3tls.html"><code>nng_tls_config_alloc()</code></a>
+can be passed this way.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This form is somewhat special in that the object is generally
+not copied, but instead the <strong>pointer</strong> to the object is copied.
+Please see the documentation for the specific option for further details.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_size()</code></dt>
+<dd>
+<p>This function is used to configure a size, typically for buffer sizes,
+message maximum sizes, and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_string()</code></dt>
+<dd>
+<p>This function is used to pass configure a string.
+Strings passed this way must be legal UTF-8 or ASCII strings, terminated
+with a <code>NUL</code> (<code>\0</code>) byte.
+(Other constraints may apply as well, see the documentation for each option
+for details.)</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_uint64()</code></dt>
+<dd>
+<p>This function is used to configure a 64-bit unsigned value/
+This is typically used for identifiers, network numbers,
+and similar options.</p>
+</dd>
+<dt class="hdlist1"><code>nng_stream_set_addr()</code></dt>
+<dd>
+<p>This function is used to configure a
+<a href="nng_sockaddr.5.html">socket address</a>.
+The value is copied, and thus the caller may discard the supplied
+value immediately after this function returns.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ECLOSED</code>
+</td>
+<td class="hdlist2">
+<p>The connection is closed.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>Either <em>data</em> or <em>size</em> are invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The option is not supported.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EREADONLY</code>
+</td>
+<td class="hdlist2">
+<p>The option may not be modified.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_stream_get.3str.html">nng_stream_get(3str)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_ipc_options.5.html">nng_ipc_options(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng_tls_options.5.html">nng_tls_options(5)</a>,
+<a href="nng_stream.5.html">nng_stream(5)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_strerror.3.html b/man/v1.2.4/nng_strerror.3.html
new file mode 100644
index 00000000..87b082cd
--- /dev/null
+++ b/man/v1.2.4/nng_strerror.3.html
@@ -0,0 +1,106 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_strerror(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_strerror(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_strerror - return an error description</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span> <span class="tok-nf">nng_strerror</span><span class="tok-p">(</span><span class="tok-kt">int</span> <span class="tok-n">err</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_strerror()</code> returns the human-readable description of the
+given <em>nng</em> error in <code>err</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The returned error message is provided in US English, but in the
+future locale-specific strings may be presented instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns the human-readable error message, terminated
+by a <code>NUL</code> byte.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_strfree.3.html b/man/v1.2.4/nng_strfree.3.html
new file mode 100644
index 00000000..7350cdd7
--- /dev/null
+++ b/man/v1.2.4/nng_strfree.3.html
@@ -0,0 +1,121 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_strfree(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_strfree(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_strfree - free memory</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_strfree</span><span class="tok-p">(</span><span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_strfree()</code> function deallocates the string <em>str</em>.
+This is equivalent to using <a href="nng_free.3.html"><code>nng_free()</code></a> with
+the length of <em>str</em> plus one (for the <code>NUL</code> terminating byte) as
+the size.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This should only be used with strings that were allocated
+by <a href="nng_strdup.3.html"><code>nng_strdup()</code></a> or
+<a href="nng_alloc.3.html"><code>nng_alloc()</code></a>.
+In all cases, the allocation size of the string must be the same
+as <code>strlen(<em>str</em>) + 1</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Consequently, if the a string created with
+<a href="nng_strdup.3.html"><code>nng_strdup()</code></a> is modified to be shorter, then
+it is incorrect to call this function.
+(The <a href="nng_free.3.html"><code>nng_free()</code></a> function can be used instead in that
+case, using the length of the original string plus one for the size.)
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_alloc.3.html">nng_alloc(3)</a>,
+<a href="nng_free.3.html">nng_free(3)</a>,
+<a href="nng_strdup.3.html">nng_strdup(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sub.7.html b/man/v1.2.4/nng_sub.7.html
new file mode 100644
index 00000000..5006ac40
--- /dev/null
+++ b/man/v1.2.4/nng_sub.7.html
@@ -0,0 +1,183 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sub(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sub(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sub - subscriber protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pubsub0/sub.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>sub</em> 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.</p>
+</div>
+<div class="paragraph">
+<p>The <em>sub</em> protocol is the subscriber side, and the
+<a href="nng_pub.7.html"><em>pub</em></a> protocol is the publisher side.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The topics that subscribers subscribe to is just the first part of
+the message body.
+Applications should construct their messages accordingly.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_sub_open.3.html"><code>nng_sub0_open()</code></a> functions create a subscriber socket.
+This socket may be used to receive messages, but is unable to send them.
+Attempts to send messages will result in <code>NNG_ENOTSUP</code>.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>Only version 0 of this protocol is supported.
+(At the time of writing, no other versions of this protocol have been defined.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The following protocol-specific options are available.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_SUB_SUBSCRIBE</code></dt>
+<dd>
+<p>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.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This option is a byte array. Thus if you use
+<a href="nng_setopt.3.html"><code>nng_setopt_string()</code></a> the <code>NUL</code> terminator byte will
+be included in the topic.
+If that isn&#8217;t desired, consider using
+<a href="nng_setopt.3.html"><code>nng_setopt()</code></a> and using <code>strlen()</code> of the topic
+as the topic size.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+To receive all messages, an empty topic (zero length) can be used.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_SUB_UNSUBSCRIBE</code></dt>
+<dd>
+<p>This option, also read-only, removes a topic from the subscription list.
+Note that if the topic was not previously subscribed to with
+<code>NNG_OPT_SUB_SUBSCRIBE</code> then an <code>NNG_ENOENT</code> error will result.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_SUB_PREFNEW</code></dt>
+<dd>
+<p>(<code>bool</code>)
+This read/write option specifies the behavior of the subscriber when the queue is full.
+When <code>true</code> (the default), the subscriber will make room in the queue by removing the oldest message.
+When <code>false</code>, the subscriber will reject messages if the message queue does not have room.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>The <em>sub</em> protocol has no protocol-specific headers.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sub_open.3.html">nng_sub_open(3)</a>,
+<a href="nng_pub.7.html">nng_pub(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_sub_open.3.html b/man/v1.2.4/nng_sub_open.3.html
new file mode 100644
index 00000000..1cf31d7c
--- /dev/null
+++ b/man/v1.2.4/nng_sub_open.3.html
@@ -0,0 +1,112 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_sub_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_sub_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_sub_open - create sub socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/pubsub0/sub.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_sub0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_sub0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_sub0_open()</code> function creates a <a href="nng_sub.7.html"><em>sub</em></a> version 0
+<a href="nng_socket.5.html">socket</a> and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_sub0_open_raw()</code> function creates a <a href="nng_sub.7.html"><em>sub</em></a> version 0
+<a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_pub.7.html">nng_pub(7)</a>,
+<a href="nng_sub.7.html">nng_sub(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_surveyor.7.html b/man/v1.2.4/nng_surveyor.7.html
new file mode 100644
index 00000000..a7741366
--- /dev/null
+++ b/man/v1.2.4/nng_surveyor.7.html
@@ -0,0 +1,238 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_surveyor(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_surveyor(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_socket_operations">Socket Operations</a></li>
+<li><a href="#_context_operations">Context Operations</a></li>
+<li><a href="#_protocol_versions">Protocol Versions</a></li>
+<li><a href="#_protocol_options">Protocol Options</a></li>
+<li><a href="#_protocol_headers">Protocol Headers</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_surveyor - surveyor protocol</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/survey0/survey.h&gt;</span><span class="tok-cp"></span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>surveyor</em> 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.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This protocol is useful in solving voting problems, such as
+leader election in cluster configurations, as well as certain kinds of
+service discovery problems.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The <em>surveyor</em> protocol is the surveyor side, and the
+<a href="nng_respondent.7.html"><em>respondent</em></a> protocol is the respondent side.</p>
+</div>
+<div class="sect2">
+<h3 id="_socket_operations">Socket Operations</h3>
+<div class="paragraph">
+<p>The <a href="nng_surveyor_open.3.html"><code>nng_surveyor0_open()</code></a>
+functions create 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.)</p>
+</div>
+<div class="paragraph">
+<p>Attempts to receive on a socket with no outstanding survey will result
+in <code>NNG_ESTATE</code>.
+If the survey times out while the surveyor is waiting
+for replies, then the result will be <code>NNG_ETIMEDOUT</code>.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p><a href="nng.7.html#raw_mode">Raw</a> mode sockets ignore all these restrictions.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_context_operations">Context Operations</h3>
+<div class="paragraph">
+<p>This protocol supports the creation of <a href="nng_ctx.5.html">contexts</a> for concurrent
+use cases using <a href="nng_ctx_open.3.html"><code>nng_ctx_open()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Each context can initiate its own surveys, and it will receive only
+responses to its own outstanding surveys.
+Other contexts on the same socket may have overlapping surveys
+operating at the same time.</p>
+</div>
+<div class="paragraph">
+<p>Each of these may have their own timeouts established with
+<code>NNG_OPT_SURVEYOR_SURVEYTIME</code>.</p>
+</div>
+<div class="paragraph">
+<p>Additionally, sending a survey on a context will only cancel an outstanding
+survey on the same context.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Due to the best-effort nature of this protocol, if too may contexts
+are attempting to perform surveys simultaneously, it is possible for either
+individual outgoing surveys or incoming responses to be lost.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_versions">Protocol Versions</h3>
+<div class="paragraph">
+<p>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
+<a href="http://nanomsg.org">nanomsg</a>, but was not released in any production
+version.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_options">Protocol Options</h3>
+<div class="paragraph">
+<p>The following protocol-specific options is available.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_SURVEYOR_SURVEYTIME</code></dt>
+<dd>
+<p>(<a href="nng_duration.5.html"><code>nng_duration</code></a>) Duration of surveys.
+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
+<code>NNG_ESTATE</code>.
+Attempts to receive when this timer expires will result in <code>NNG_ETIMEDOUT</code>.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_headers">Protocol Headers</h3>
+<div class="paragraph">
+<p>
+This form uses a &#8220;stack&#8221; of 32-bit big-endian identifiers.
+There <strong>must</strong> be at least one identifier, the <em>survey ID</em>, which will be the
+last element in the array, and <strong>must</strong> have the most significant bit set.</p>
+</div>
+<div class="paragraph">
+<p>There may be additional <em>peer ID</em>s preceding the survey ID.
+These will be distinguishable from the survey ID by having their most
+significant bit clear.</p>
+</div>
+<div class="paragraph">
+<p>When a survey message is received by a forwarding node (see
+<a href="nng_device.3.html"><code>nng_device()</code></a>), the forwarding node prepends a
+32-bit peer ID (which <strong>must</strong> have the most significant bit clear),
+which is the forwarder&#8217;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.)</p>
+</div>
+<div class="paragraph">
+<p>It may help to think of prepending a peer ID as &#8220;pushing&#8221; 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.)</p>
+</div>
+<div class="paragraph">
+<p>When a response message is created, it is created using the same headers
+that the survey contained.</p>
+</div>
+<div class="paragraph">
+<p>A forwarding node can &#8220;pop&#8221; the peer ID it originally pushed on the
+message, stripping it from the front of the message as it does so.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>More detail can be found in the
+<a href="https://github.com/nanomsg/nanomsg/blob/master/rfc/sp-surveyor-01.txt">RFC sp-surveyor-01</a>
+document.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_surveyor_open.3.html">nng_surveyor_open(3)</a>,
+<a href="nng_respondent.7.html">nng_respondent(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_surveyor_open.3.html b/man/v1.2.4/nng_surveyor_open.3.html
new file mode 100644
index 00000000..05b0c55a
--- /dev/null
+++ b/man/v1.2.4/nng_surveyor_open.3.html
@@ -0,0 +1,113 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_surveyor_open(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_surveyor_open(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_surveyor_open - create surveyor socket</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/protocol/survey0/survey.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_surveyor0_open</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_surveyor0_open_raw</span><span class="tok-p">(</span><span class="tok-n">nng_socket</span> <span class="tok-o">*</span><span class="tok-n">s</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_surveyor0_open()</code> function creates a <a href="nng_surveyor.7.html"><em>surveyor</em></a>
+version 0 <a href="nng_socket.5.html">socket</a> and returns it at the location
+pointed to by <em>s</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_surveyor0_open_raw()</code> function creates a <a href="nng_surveyor.7.html"><em>surveyor</em></a>
+version 0 <a href="nng_socket.5.html">socket</a> in
+<a href="nng.7.html#raw_mode">raw</a> mode and returns it at the location pointed to by <em>s</em>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>These functions return 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The protocol is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_socket.5.html">nng_socket(5)</a>,
+<a href="nng_respondent.7.html">nng_respondent(7)</a>,
+<a href="nng_surveyor.7.html">nng_surveyor(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tcp.5.html b/man/v1.2.4/nng_tcp.5.html
new file mode 100644
index 00000000..d198d95e
--- /dev/null
+++ b/man/v1.2.4/nng_tcp.5.html
@@ -0,0 +1,170 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tcp(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tcp(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_options">Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tcp - TCP connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tcp/tcp.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_tcp_s</span> <span class="tok-n">nng_tcp</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_tcp</code> represents a connected stream.
+TCP stream objects can be used to send or receive data.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <code>nng_tcp</code> object is used for raw TCP connections, and
+should not be confused with a pipe object created using the
+<a href="nng_tcp.7.html">nng_tcp(7)</a> transport.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Most NNG applications should not use this, but instead use the
+<a href="nng_tcp.7.html">nng_tcp(7)</a> transport instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>These objects are created either establishing an outgoing connection
+with <a href="nng_tcp_dialer_dial.3tcp.html"><code>nng_tcp_dialer_dial()</code></a> or by
+accepting in incoming connection with
+<a href="nng_tcp_listener_accept.3tcp.html"><code>nng_tcp_listener_accept()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>TCP connections are byte streams, and are &#8220;reliable&#8221; in that data
+will not be delivered out of order, or with portions missing.</p>
+</div>
+<div class="paragraph">
+<p>Data can be sent using <a href="nng_tcp_send.3tcp.html"><code>nng_tcp_send()</code></a> or
+received with <a href="nng_tcp_recv.3tcp.html"><code>nng_tcp_recv()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>When the connection is no longer needed, it should be freed with
+<a href="nng_tcp_free.3tcp.html"><code>nng_tcp_free()</code></a>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is possible to close the connection, without freeing it, by
+using <a href="nng_tcp_close.3tcp.html"><code>nng_tcp_close()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_options">Options</h3>
+<div class="paragraph">
+<p>The following options are applicable to TCP connections, and may be
+accessed using the <a href="nng_tcp_getopt.3tcp.html"><code>nng_tcp_getopt()</code></a> and
+<a href="nng_tcp_setopt.3tcp.html"><code>nng_tcp_setopt()</code></a> functions.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_NO_DELAY"><code>NNG_OPT_TCP_NODELAY</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_KEEPALIVE"><code>NNG_OPT_TCP_KEEPALIVE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_BOUND_PORT"><code>NNG_OPT_TCP_BOUND_PORT</code></a></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Other platform specific options may be available as well.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_tcp_close.3tcp.html">nng_tcp_close(3tcp)</a>,
+<a href="nng_tcp_dialer_dial.3tcp.html">nng_tcp_dialer_dial(3tcp)</a>,
+<a href="nng_tcp_free.3tcp.html">nng_tcp_free(3tcp)</a>,
+<a href="nng_tcp_getopt.3tcp.html">nng_tcp_getopt(3tcp)</a>,
+<a href="nng_tcp_listener_accept.3tcp.html">nng_tcp_listener_accept(3tcp)</a>,
+<a href="nng_tcp_recv.3tcp.html">nng_tcp_recv(3tcp)</a>,
+<a href="nng_tcp_send.3tcp.html">nng_tcp_send(3tcp)</a>,
+<a href="nng_tcp_setopt.3tcp.html">nng_tcp_setopt(3tcp)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tcp.7.html b/man/v1.2.4/nng_tcp.7.html
new file mode 100644
index 00000000..70cdeb5f
--- /dev/null
+++ b/man/v1.2.4/nng_tcp.7.html
@@ -0,0 +1,212 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tcp(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tcp(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_registration">Registration</a></li>
+<li><a href="#_uri_format">URI Format</a></li>
+<li><a href="#_socket_address">Socket Address</a></li>
+<li><a href="#_transport_options">Transport Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tcp - TCP/IP transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/tcp/tcp.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tcp_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>tcp</em> transport provides communication support between
+<em>nng</em> sockets across a TCP/IP network.
+Both IPv4 and IPv6 are supported when the underlying platform also supports it.</p>
+</div>
+<div class="sect2">
+<h3 id="_registration">Registration</h3>
+<div class="paragraph">
+<p>The <em>nng_tcp</em> transport is generally built-in to the <em>nng</em> core, so
+no extra steps to use it should be necessary.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_uri_format">URI Format</h3>
+<div class="paragraph">
+<p>
+This transport uses URIs using the scheme <code>tcp://</code>, 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: <code>tcp://127.0.0.1:80</code> or <code>tcp://localhost:80</code>.</p>
+</div>
+<div class="paragraph">
+<p>A URI may be restricted to IPv6 using the scheme <code>tcp6://</code>, and may
+be restricted to IPv4 using the scheme <code>tcp4://</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Specifying <code>tcp6://</code> may not prevent IPv4 hosts from being used with
+IPv4-in-IPv6 addresses, particularly when using a wildcard hostname with
+listeners.
+The details of this varies across operating systems.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Both <code>tcp6://</code> and <code>tcp4://</code> are <em>nng</em> extensions, and might not
+be understood by other implementations.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+We recommend using either numeric IP addresses, or names that are
+specific to either IPv4 or IPv6 to prevent confusion and surprises.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>When specifying IPv6 addresses, the address must be enclosed in
+square brackets (<code>[]</code>) to avoid confusion with the final colon
+separating the port.</p>
+</div>
+<div class="paragraph">
+<p>For example, the same port 80 on the IPv6 loopback address (<code>::1</code>) would
+be specified as <code>tcp://[::1]:80</code>.</p>
+</div>
+<div class="paragraph">
+<p>The special value of 0 (<code>INADDR_ANY</code>)
+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 (<code>*</code>) character.
+For example, the following three URIs are all equivalent,
+and could be used to listen to port 9999 on the host:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p><code>tcp://0.0.0.0:9999</code></p>
+</li>
+<li>
+<p><code>tcp://*:9999</code></p>
+</li>
+<li>
+<p><code>tcp://:9999</code></p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>The entire URI must be less than <code>NNG_MAXADDRLEN</code> bytes long.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_socket_address">Socket Address</h3>
+<div class="paragraph">
+<p>When using an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a> structure,
+the actual structure is either of type
+<a href="nng_sockaddr_in.5.html"><code>nng_sockaddr_in</code></a> (for IPv4) or
+<a href="nng_sockaddr_in6.5.html"><code>nng_sockaddr_in6</code></a> (for IPv6).</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_transport_options">Transport Options</h3>
+<div class="paragraph">
+<p>The following transport options are supported by this transport,
+where supported by the underlying platform.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_KEEPALIVE"><code>NNG_OPT_TCP_KEEPALIVE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_NODELAY"><code>NNG_OPT_TCP_NODELAY</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_URL"><code>NNG_OPT_URL</code></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_sockaddr_in.5.html">nng_sockaddr_in(5)</a>,
+<a href="nng_sockaddr_in6.5.html">nng_sockaddr_in6(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tcp_options.5.html b/man/v1.2.4/nng_tcp_options.5.html
new file mode 100644
index 00000000..ad73755d
--- /dev/null
+++ b/man/v1.2.4/nng_tcp_options.5.html
@@ -0,0 +1,220 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tcp_options(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tcp_options(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_tcp_options">TCP Options</a></li>
+<li><a href="#_inherited_options">Inherited Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tcp_options - TTCP-specific options</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-cp">#define NNG_OPT_TCP_NODELAY &quot;tcp-nodelay&quot;</span>
+<span class="tok-cp">#define NNG_OPT_TCP_KEEPALIVE &quot;tcp-keepalive&quot;</span>
+<span class="tok-cp">#define NNG_OPT_TCP_BOUND_PORT &quot;tcp-bound-port&quot;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This page documents the various standard options that can be set or
+retrieved on objects using TCP in the <em>nng</em> library.</p>
+</div>
+<div class="paragraph">
+<p>The option names should always be used by their symbolic definitions.</p>
+</div>
+<div class="paragraph">
+<p>In the following list of options, the name of the option is supplied,
+along with the data type of the underlying value.</p>
+</div>
+<div class="paragraph">
+<p>Some options are only meaningful or supported in certain contexts, or may
+have other access restrictions.
+An attempt has been made to include details about such restrictions in the
+description of the option.</p>
+</div>
+<div class="paragraph">
+<p>The following options are generally application to objects making use of
+TCP/IP communications.</p>
+</div>
+<div class="sect2">
+<h3 id="_tcp_options">TCP Options</h3>
+<div id="NNG_OPT_TCP_NODELAY" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_TCP_NODELAY</code></dt>
+<dd>
+<p>(<code>bool</code>)
+This option is used to disable (or enable) the use of Nagle&#8217;s algorithm
+for TCP connections.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This setting may apply to transports that are built on top of TCP.
+See the transport documentation for each transport for details.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>When <code>true</code> (the default), messages are sent immediately by the underlying
+TCP stream without waiting to gather more data.</p>
+</div>
+<div class="paragraph">
+<p>When <code>false</code>, Nagle&#8217;s algorithm is enabled, and the TCP stream may
+wait briefly in attempt to coalesce messages.
+Nagle&#8217;s algorithm is useful on low-bandwidth connections to reduce overhead,
+but it comes at a cost to latency.</p>
+</div>
+<div class="paragraph">
+<p>When used on a dialer or a listener, the value affects how newly
+created connections will be configured.</p>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_TCP_KEEPALIVE" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_TCP_KEEPALIVE</code></dt>
+<dd>
+<p>(<code>bool</code>)
+This option is used to enable the sending of keep-alive messages on
+the underlying TCP stream.
+This option is <code>false</code> by default.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This setting may apply to transports that are built on top of TCP.
+See the transport documentation for each transport for details.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>When enabled, if no messages are seen for a period of time, then
+a zero length TCP message is sent with the ACK flag set in an attempt
+to tickle some traffic from the peer.
+If none is still seen (after some platform-specific number of retries and
+timeouts), then the remote peer is presumed dead, and the connection is closed.</p>
+</div>
+<div class="paragraph">
+<p>When used on a dialer or a listener, the value affects how newly
+created connections will be configured.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This option has two purposes.
+First, it can be used to detect dead peers on an otherwise quiescent network.
+Second, it can be used to keep connection table entries in NAT and other
+middleware from being expiring due to lack of activity.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_TCP_BOUND_PORT" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_TCP_BOUND_PORT</code></dt>
+<dd>
+<p>(<code>int</code>)
+This option is available on listeners, after the listern has bound to
+a port, and provides the port bound to in native byte order.
+This is most useful when using a listener with an ephemeral port
+(configured by using port 0 at configuration time), as it allows
+the caller to determine the actual ephemeral port that was chosen by the
+system.
+While the value is of type <code>int</code>, it will be a legal TCP port number, that
+is a value between 1 and 65535, inclusive.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_inherited_options">Inherited Options</h3>
+<div class="paragraph">
+<p>Generally, the following option values are also available for TCP objects,
+when appropriate for the context:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tcp_dialer_getopt.3tcp.html">nng_tcp_dialer_getopt(3tcp)</a>,
+<a href="nng_tcp_dialer_setopt.3tcp.html">nng_tcp_dialer_setopt(3tcp)</a>,
+<a href="nng_tcp_getopt.3tcp.html">nng_tcp_getopt(3tcp)</a>,
+<a href="nng_tcp_listener_getopt.3tcp.html">nng_tcp_listener_getopt(3tcp)</a>,
+<a href="nng_tcp_listener_setopt.3tcp.html">nng_tcp_listener_setopt(3tcp)</a>,
+<a href="nng_tcp_setopt.3tcp.html">nng_tcp_setopt(3tcp)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tcp_register.3.html b/man/v1.2.4/nng_tcp_register.3.html
new file mode 100644
index 00000000..4fa7cb00
--- /dev/null
+++ b/man/v1.2.4/nng_tcp_register.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tcp_register(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tcp_register(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tcp_register - register tcp transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/tcp/tcp.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tcp_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tcp_register()</code> function registers the
+<em>tcp</em> transport for use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The transport is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tcp.7.html">nng_tcp(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_thread_create.3supp.html b/man/v1.2.4/nng_thread_create.3supp.html
new file mode 100644
index 00000000..cd388392
--- /dev/null
+++ b/man/v1.2.4/nng_thread_create.3supp.html
@@ -0,0 +1,181 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_thread_create(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_thread_create(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_thread_create - create thread</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_thread</span> <span class="tok-n">nng_thread</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_thread_create</span><span class="tok-p">(</span><span class="tok-n">nng_thread</span> <span class="tok-o">**</span><span class="tok-n">thrp</span><span class="tok-p">,</span> <span class="tok-kt">void</span> <span class="tok-p">(</span><span class="tok-o">*</span><span class="tok-n">func</span><span class="tok-p">)(</span><span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-p">),</span> <span class="tok-kt">void</span> <span class="tok-o">*</span><span class="tok-n">arg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_thread_create()</code> function creates a single thread of execution,
+running <em>func</em> with the argument <em>arg</em>.
+The thread is started immediately.
+A pointer to the thread object is returned in <em>thrp</em>.</p>
+</div>
+<div class="paragraph">
+<p>The intention of this program is to facilitate writing parallel programs.
+Threads created by this program will be based upon the underlying
+threading mechanism of the system that <em>NNG</em> is running on.
+This may include use of so-called &#8220;green threads&#8221; or coroutines.</p>
+</div>
+<div class="paragraph">
+<p>Using threads created by this function can make it easy to write
+programs that use simple sequential execution, using functions in the
+<em>NNG</em> suite that would otherwise normally &#8220;block&#8221;.</p>
+</div>
+<div class="paragraph">
+<p>When the thread is no longer needed, the
+<a href="nng_thread_destroy.3supp.html"><code>nng_thread_destroy()</code></a>
+function should be used to reap it.
+(This function will block waiting for <em>func</em> to return.)</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Thread objects created by this function may not be &#8220;real&#8221;
+threads capable of performing blocking I/O operations using normal blocking
+system calls.
+If use of blocking system calls is required (not including APIs provided
+by the <em>NNG</em> library itself of course), then real OS-specific threads
+should be created instead (such as with <code>pthread_create()</code> or similar
+functions.)
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Thread objects created by this function cannot be passed
+to any system threading functions.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The system may impose limits on the number of threads that can be
+created.
+Typically applications should not create more than a dozen of these.
+If greater concurrency or scalability is needed, consider instead using
+an asynchronous model using <a href="nng_aio.5.html"><code>nng_aio</code></a> structures.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Threads can be synchronized using
+<a href="nng_mtx_alloc.3supp.html">mutexes</a> and
+<a href="nng_cv_alloc.3supp.html">condition variables</a>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_cv_alloc.3supp.html">nng_cv_alloc(3supp)</a>,
+<a href="nng_mtx_alloc.3supp.html">nng_mtx_alloc(3supp)</a>,
+<a href="nng_thread_destroy.3supp.html">nng_thread_destroy(3supp)</a>,
+<a href="nng_aio.5.html">nng_aio(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_thread_destroy.3supp.html b/man/v1.2.4/nng_thread_destroy.3supp.html
new file mode 100644
index 00000000..60476a2a
--- /dev/null
+++ b/man/v1.2.4/nng_thread_destroy.3supp.html
@@ -0,0 +1,100 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_thread_destroy(3supp)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_thread_destroy(3supp) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_thread_destroy - reap thread</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/util/platform.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_thread_destroy</span><span class="tok-p">(</span><span class="tok-n">nng_thread</span> <span class="tok-o">*</span><span class="tok-kr">thread</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_thread_destroy()</code> function reaps the <em>thread</em>.
+It waits for the thread function to return, and then deallocates
+the resources for the thread.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+Do not call this function from the thread function itself,
+or a deadlock will occur.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_thread_create.3supp.html">nng_thread_create(3supp)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls.5.html b/man/v1.2.4/nng_tls.5.html
new file mode 100644
index 00000000..6c0dd42d
--- /dev/null
+++ b/man/v1.2.4/nng_tls.5.html
@@ -0,0 +1,172 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_options">Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls - TLS over TCP connection</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_tls_s</span> <span class="tok-n">nng_tls</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_tls</code> represents a connected stream.
+TLS stream objects can be used to send or receive data, and
+provide transport level security via cryptography over a TCP connected
+stream.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The <code>nng_tls</code> object is used for raw TLS connections, and
+should not be confused with a pipe object created using the
+<a href="nng_tls.7.html">nng_tls(7)</a> transport.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Most NNG applications should not use this, but instead use the
+<a href="nng_tls.7.html">nng_tls(7)</a> transport instead.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>These objects are created either establishing an outgoing connection
+with <a href="nng_tls_dialer_dial.3tls.html"><code>nng_tls_dialer_dial()</code></a> or by
+accepting in incoming connection with
+<a href="nng_tls_listener_accept.3tls.html"><code>nng_tls_listener_accept()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>TLS connections are byte streams, and are &#8220;reliable&#8221; in that data
+will not be delivered out of order, or with portions missing.</p>
+</div>
+<div class="paragraph">
+<p>Data can be sent using <a href="nng_tls_send.3tls.html"><code>nng_tls_send()</code></a> or
+received with <a href="nng_tls_recv.3tls.html"><code>nng_tls_recv()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>When the connection is no longer needed, it should be freed with
+<a href="nng_tls_free.3tls.html"><code>nng_tls_free()</code></a>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+It is possible to close the connection, without freeing it, by
+using <a href="nng_tls_close.3tls.html"><code>nng_tls_close()</code></a>.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_options">Options</h3>
+<div class="paragraph">
+<p>The following options are applicable to TLS connections, and may be
+accessed using the <a href="nng_tls_getopt.3tls.html"><code>nng_tls_getopt()</code></a> and
+<a href="nng_tls_setopt.3tls.html"><code>nng_tls_setopt()</code></a> functions.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_KEEPALIVE"><code>NNG_OPT_TCP_KEEPALIVE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_NO_DELAY"><code>NNG_OPT_TCP_NODELAY</code></a></p>
+</li>
+<li>
+<p><a href="nng_tls_options.5.html#NNG_OPT_TLS_VERIFIED"><code>NNG_OPT_TLS_VERIFIED</code></a></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Other platform specific options may be available as well.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng_tls_close.3tls.html">nng_tls_close(3tls)</a>,
+<a href="nng_tls_dialer_dial.3tls.html">nng_tls_dialer_dial(3tls)</a>,
+<a href="nng_tls_free.3tls.html">nng_tls_free(3tls)</a>,
+<a href="nng_tls_getopt.3tls.html">nng_tls_getopt(3tls)</a>,
+<a href="nng_tls_listener_accept.3tls.html">nng_tls_listener_accept(3tls)</a>,
+<a href="nng_tls_recv.3tls.html">nng_tls_recv(3tls)</a>,
+<a href="nng_tls_send.3tls.html">nng_tls_send(3tls)</a>,
+<a href="nng_tls_setopt.3tls.html">nng_tls_setopt(3tls)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_tls_options.5.html">nng_tls_options(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls.7.html b/man/v1.2.4/nng_tls.7.html
new file mode 100644
index 00000000..4c2fe5d9
--- /dev/null
+++ b/man/v1.2.4/nng_tls.7.html
@@ -0,0 +1,291 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_registration">Registration</a></li>
+<li><a href="#_availability">Availability</a></li>
+<li><a href="#_uri_format">URI Format</a></li>
+<li><a href="#_socket_address">Socket Address</a></li>
+<li><a href="#_transport_options">Transport Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls - TLS transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>tls</em> transport provides communication support between
+<em>nng</em> sockets across a TCP/IP network using
+<a href="https://tools.ietf.org/html/rfc5246">TLS v1.2</a> on top of
+<a href="https://tools.ietf.org/html/rfc793">TCP</a>.
+Both IPv4 and IPv6 are supported when the underlying platform also supports it.</p>
+</div>
+<div class="paragraph">
+<p>The protocol details are documented in
+<a href="http://nanomsg.org/rfcs/sp-tls-v1.html">TLS Mapping for Scalability Protocols</a>.</p>
+</div>
+<div class="sect2">
+<h3 id="_registration">Registration</h3>
+<div class="paragraph">
+<p>Depending upon how the library was built, it may be necessary to
+register the transport by calling
+<a href="nng_tls_register.3.html"><code>nng_tls_register()</code></a>.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_availability">Availability</h3>
+<div class="paragraph">
+<p>The <em>tls</em> transport depends on the use of an external library.
+As of this writing, <a href="https://tls.mbed.org/">mbedTLS</a> version 2.0
+or later is required.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Applications may need to add this library (or libraries) to
+their link line, particularly when using a statically built
+<em>nng</em> library.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The mbedTLS library uses different licensing terms than
+<em>nng</em> itself; as of this writing it is offered under either
+<a href="https://opensource.org/licenses/Apache-2.0">Apache License 2.0</a> or
+<a href="https://opensource.org/licenses/gpl-license">GNU GPL</a> terms.
+You are responsible for understanding and adhering to the
+license terms of any libraries you make use of.
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_uri_format">URI Format</h3>
+<div class="paragraph">
+<p>
+This transport uses URIs using the scheme <code>tls+tcp://</code>, 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: <code>tls+tcp://127.0.0.1:4433</code> or
+<code>tls+tcp://localhost:4433</code>.</p>
+</div>
+<div class="paragraph">
+<p>A URI may be restricted to IPv6 using the scheme <code>tls+tcp6://</code>, and may
+be restricted to IPv4 using the scheme <code>tls+tcp4://</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Specifying <code>tls+tcp6://</code> may not prevent IPv4 hosts from being used with
+IPv4-in-IPv6 addresses, particularly when using a wildcard hostname with
+listeners.
+The details of this varies across operating systems.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Both <code>tls+tcp6://</code> and <code>tls+tcp4://</code> are <em>nng</em> extensions, and may not
+be understood by other implementations.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+We recommend using either numeric IP addresses, or names that are
+specific to either IPv4 or IPv6 to prevent confusion and surprises.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>When specifying IPv6 addresses, the address must be enclosed in
+square brackets (<code>[]</code>) to avoid confusion with the final colon
+separating the port.</p>
+</div>
+<div class="paragraph">
+<p>For example, the same port 4433 on the IPv6 loopback address ('::1') would
+be specified as <code>tls+tcp://[::1]:4433</code>.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The special value of 0 (<code>INADDR_ANY</code>) 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 (<code>*</code>) character.
+For example, the following three URIs are all equivalent,
+and could be used to listen to port 9999 on the host:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p><code>tls+tcp://0.0.0.0:9999</code></p>
+</li>
+<li>
+<p><code>tls+tcp://*:9999</code></p>
+</li>
+<li>
+<p><code>tls+tcp://:9999</code></p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>The entire URI must be less than <code>NNG_MAXADDRLEN</code> bytes long.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_socket_address">Socket Address</h3>
+<div class="paragraph">
+<p>When using an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a> structure,
+the actual structure is either of type
+<a href="nng_sockaddr_in.5.html"><code>nng_sockaddr_in</code></a> (for IPv4) or
+<a href="nng_sockaddr_in6.5.html"><code>nng_sockaddr_in6</code></a> (for IPv6).</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_transport_options">Transport Options</h3>
+<div class="paragraph">
+<p>The following transport options are available.
+Note that setting these must be done before the transport is started.</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_KEEPALIVE"><code>NNG_OPT_TCP_KEEPALIVE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_NODELAY"><code>NNG_OPT_TCP_NODELAY</code></a></p>
+</li>
+<li>
+<p><a href="nng_tls_options.5.html#NNG_OPT_TLS_AUTH_MODE"><code>NNG_OPT_TLS_AUTH_MODE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tls_options.5.html#NNG_OPT_TLS_CA_FILE"><code>NNG_OPT_TLS_CA_FILE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tls_options.5.html#NNG_OPT_TLS_CERT_KEY_FILE"><code>NNG_OPT_TLS_CERT_KEY_FILE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tls_options.5.html#NNG_OPT_TLS_CONFIG"><code>NNG_OPT_TLS_CONFIG</code></a></p>
+</li>
+<li>
+<p><a href="nng_tls_options.5.html#NNG_OPT_TLS_VERIFIED"><code>NNG_OPT_TLS_VERIFIED_</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_URL"><code>NNG_OPT_URL</code></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>
+<a href="nng_options.5.html">nng_options(5)</a>,
+<a href="nng_sockaddr_in.5.html">nng_sockaddr_in(5)</a>,
+<a href="nng_sockaddr_in6.5.html">nng_sockaddr_in6(5)</a>,
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>,
+<a href="nng_tls_config.5.html">nng_tls_config(5)</a>,
+<a href="nng_tls_options.5.html">nng_tls_options(5)</a>,
+<a href="nng.7.html">nng(7)</a>,</p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config.5.html b/man/v1.2.4/nng_tls_config.5.html
new file mode 100644
index 00000000..f75cb370
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config.5.html
@@ -0,0 +1,92 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config - message</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">struct</span> <span class="tok-n">nng_tls_config</span> <span class="tok-n">nng_tls_config</span><span class="tok-p">;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>An <code>nng_tls_config</code> represents a single TLS configuration object, which
+can be used to configure TLS servers and clients.</p>
+</div>
+<div class="paragraph">
+<p>Configuration data includes details such as certificate chains used for
+validation of remote peers, local key and certificate material, server
+names, and so forth.
+Additionally, a configuration can be used either in client mode, or in
+server mode.</p>
+</div>
+<div class="paragraph">
+<p>Configuration objects may be shared, and are reference counted.
+However once a configuration is used, it enters a read-only state that
+precludes further modifications to the configuration.</p>
+</div>
+<div class="paragraph">
+<p>Messages are allocated using the
+<a href="nng_tls_config_alloc.3tls.html"><code>nng_tls_config_alloc()</code></a>
+function, and are deallocated using the
+<a href="nng_tls_config_free.3tls.html"><code>nng_tls_config_free()</code></a>
+function.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_auth_mode.3tls.html">nng_tls_config_auth_mode(3tls)</a>,
+<a href="nng_tls_config_ca_chain.3tls.html">nng_tls_config_ca_chain(3tls)</a>,
+<a href="nng_tls_config_own_cert.3tls.html">nng_tls_config_own_cert(3tls)</a>,
+<a href="nng_tls_config_free.3tls.html">nng_tls_config_free(3tls)</a>,
+<a href="nng_tls_config_hold.3tls.html">nng_tls_config_hold(3tls)</a>,
+<a href="nng_tls_config_server_name.3tls.html">nng_tls_config_server_name(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_alloc.3tls.html b/man/v1.2.4/nng_tls_config_alloc.3tls.html
new file mode 100644
index 00000000..86149fe0
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_alloc.3tls.html
@@ -0,0 +1,146 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_alloc(3tls)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_alloc(3tls) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_alloc - allocate TLS configuration object</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">enum</span> <span class="tok-n">nng_tls_mode</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_TLS_MODE_CLIENT</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_TLS_MODE_SERVER</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_tls_mode</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_config_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">**</span><span class="tok-n">cfgp</span><span class="tok-p">,</span> <span class="tok-n">nng_tls_mode</span> <span class="tok-n">mode</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_alloc()</code> function creates a newly initialized
+<a href="https://tools.ietf.org/html/rfc5246">Transport Layer Security</a>)
+configuration object, and stores a pointer to it in the value pointed
+to by <em>cfgp</em>.</p>
+</div>
+<div class="paragraph">
+<p>This object is initialized for use when acting as either a
+client (<code>NNG_TLS_MODE_CLIENT</code>) or as a server (<code>NNG_TLS_MODE_SERVER</code>),
+depending on the value of <em>mode</em>.</p>
+</div>
+<div class="paragraph">
+<p>A TLS object can be further modified by functions that set the security
+keys used, peer certificates, protocol policies, and so forth.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>A configuration object created with <code>nng_tls_config_alloc()</code> starts
+with a reference count of one.
+The reference count may be incremented using
+<a href="nng_tls_config_hold.3tls.html"><code>nng_tls_config_hold()</code></a> and may be
+decremented with
+<a href="nng_tls_config_free.3tls.html"><code>nng_tls_config_free()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Also note that a TLS configuration object becomes &#8220;read-only&#8221; after it
+is first used with a service.
+After this points, attempts to apply
+further changes to the configuration will result in <code>NNG_EBUSY</code>.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>mode</em> was specified.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_tls_config_auth_mode.3tls.html">nng_tls_config_auth_mode(3tls)</a>,
+<a href="nng_tls_config_ca_chain.3tls.html">nng_tls_config_ca_chain(3tls)</a>,
+<a href="nng_tls_config_own_cert.3tls.html">nng_tls_config_own_cert(3tls)</a>,
+<a href="nng_tls_config_free.3tls.html">nng_tls_config_free(3tls)</a>,
+<a href="nng_tls_config_hold.3tls.html">nng_tls_config_hold(3tls)</a>,
+<a href="nng_tls_config_server_name.3tls.html">nng_tls_config_server_name(3tls)</a>,
+<a href="nng_tls_config.5.html">nng_tls_config(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_auth_mode.3tls.html b/man/v1.2.4/nng_tls_config_auth_mode.3tls.html
new file mode 100644
index 00000000..13a15a99
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_auth_mode.3tls.html
@@ -0,0 +1,147 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_auth_mode(3tls)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_auth_mode(3tls) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_auth_mode - configure authentication mode</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">typedef</span> <span class="tok-k">enum</span> <span class="tok-n">nng_tls_auth_mode</span> <span class="tok-p">{</span>
+ <span class="tok-n">NNG_TLS_AUTH_MODE_NONE</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_TLS_AUTH_MODE_OPTIONAL</span><span class="tok-p">,</span>
+ <span class="tok-n">NNG_TLS_AUTH_MODE_REQUIRED</span>
+<span class="tok-p">}</span> <span class="tok-n">nng_tls_auth_mode</span><span class="tok-p">;</span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_config_auth_mode</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">,</span> <span class="tok-n">nng_tls_auth_mode</span> <span class="tok-n">mode</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_auth_mode()</code> function configures the authentication mode
+to be used for TLS sessions using this configuration object.</p>
+</div>
+<div class="paragraph">
+<p>The possible modes are:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_TLS_AUTH_MODE_NONE</code></dt>
+<dd>
+<p>No authentication of the TLS peer is performed.
+This is the default for
+TLS servers, which most typically do not authenticate their clients.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_TLS_AUTH_MODE_OPTIONAL</code></dt>
+<dd>
+<p>If a certificate is presented by the peer, then it is validated.
+However, if the peer does not present a valid certificate,
+then the session is allowed to proceed without authentication.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_TLS_AUTH_MODE_REQUIRED</code></dt>
+<dd>
+<p>A check is made to ensure that the peer has presented a valid certificate
+used for the session.
+If the peer&#8217;s certificate is invalid or missing, then the session is refused.
+This is the default for clients.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>mode</em> was specified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>The configuration <em>cfg</em> is already in use, and cannot be modified.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_ca_chain.3tls.html">nng_tls_config_ca_chain(3tls)</a>,
+<a href="nng_tls_config_ca_file.3tls.html">nng_tls_config_ca_file(3tls)</a>,
+<a href="nng_tls_config_server_name.3tls.html">nng_tls_config_server_name(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_ca_chain.3tls.html b/man/v1.2.4/nng_tls_config_ca_chain.3tls.html
new file mode 100644
index 00000000..aa8a4a24
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_ca_chain.3tls.html
@@ -0,0 +1,151 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_ca_chain(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_ca_chain(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_ca_chain - configure certificate authority certificate chain</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_config_ca_chain</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">chain</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">crl</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_ca_chain()</code> function configures a certificate or
+certificate chain to be used when validating peers using the configuration
+<em>cfg</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Certificates <strong>must</strong> be configured when using the authentication mode
+<code>NNG_TLS_AUTH_MODE_REQUIRED</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This function may be called multiple times, to add additional chains
+to a configuration, without affecting those added previously.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>The certificates located in <em>chain</em> must be a zero-terminated C string in
+<a href="https://tools.ietf.org/html/rfc7468">PEM</a> format.
+Multiple certificates may appear concatenated together,
+with the leaf certificate listed first.</p>
+</div>
+<div class="paragraph">
+<p>The <em>crl</em> may be <code>NULL</code>, or may also be a C string containing a PEM format
+certificate revocation list for the associated authority.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>The configuration <em>cfg</em> is already in use, and cannot be modified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>chain</em> or <em>crl</em> was supplied.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(.3tls)</a>,
+<a href="nng_tls_config_auth_mode.3tls.html">nng_tls_config_auth_mode(.3tls)</a>,
+<a href="nng_tls_config_ca_file.3tls.html">nng_tls_config_ca_file(.3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_ca_file.3tls.html b/man/v1.2.4/nng_tls_config_ca_file.3tls.html
new file mode 100644
index 00000000..1e47e903
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_ca_file.3tls.html
@@ -0,0 +1,163 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_ca_file(3tls)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_ca_file(3tls) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_ca_file - load certificate authority from file</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_config_ca_file</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_ca_file()</code> 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
+<a href="https://tools.ietf.org/html/rfc7468">PEM</a>
+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 <em>cfg</em>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+Certificates <strong>must</strong> be configured when using the authentication mode
+<code>NNG_TLS_AUTH_MODE_REQUIRED</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This function may be called multiple times, to add additional chains
+to a configuration, without affecting those added previously.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>The configuration <em>cfg</em> is already in use, and cannot be modified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The contents of <em>path</em> are invalid or do not contain a valid PEM certificate.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOENT</code>
+</td>
+<td class="hdlist2">
+<p>The file <em>path</em> does not exist.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPERM</code>
+</td>
+<td class="hdlist2">
+<p>The file <em>path</em> is not readable.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_auth_mode.3tls.html">nng_tls_config_auth_mode(3tls)</a>,
+<a href="nng_tls_config_ca_chain.3tls.html">nng_tls_config_ca_chain(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_cert_key_file.3tls.html b/man/v1.2.4/nng_tls_config_cert_key_file.3tls.html
new file mode 100644
index 00000000..a704787b
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_cert_key_file.3tls.html
@@ -0,0 +1,150 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_cert_key_file(3tls)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_cert_key_file(3tls) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_cert_key_file - load own certificate and key from file</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_config_cert_key_file</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">path</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">pass</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_cert_key_file()</code> function loads a certificate (or
+certificate chain) and a private key from the file named by <em>path</em>.</p>
+</div>
+<div class="paragraph">
+<p>The file must contain both the <a href="https://tools.ietf.org/html/rfc7468">PEM</a>
+encoded certificate and associated private key, which will be used when
+establishing TLS sessions using <em>cfg</em>.
+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 its own validation.</p>
+</div>
+<div class="paragraph">
+<p>The private key may be encrypted with a password, in which can be supplied in
+<em>pass</em>.
+The value <code>NULL</code> should be supplied for <em>pass</em> if the key is not encrypted.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>The configuration <em>cfg</em> is already in use, and cannot be modified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>The contents of <em>path</em> are invalid.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOENT</code>
+</td>
+<td class="hdlist2">
+<p>The file named by <em>path</em> does not exist.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EPERM</code>
+</td>
+<td class="hdlist2">
+<p>The file named by <em>path</em> cannot be opened.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_own_cert.3tls.html">nng_tls_config_own_cert(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_free.3tls.html b/man/v1.2.4/nng_tls_config_free.3tls.html
new file mode 100644
index 00000000..9e0ba71c
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_free.3tls.html
@@ -0,0 +1,87 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_free(3tls)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_free(3tls) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_free - deallocate a TLS configuration object</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_tls_config_free</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_free()</code> decrements the reference count on the
+TLS configuration object pointed to by <em>cfg</em>, and if the resulting
+reference count is zero, then deallocates the configuration object.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_hold.3tls.html b/man/v1.2.4/nng_tls_config_hold.3tls.html
new file mode 100644
index 00000000..e12cfc5f
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_hold.3tls.html
@@ -0,0 +1,96 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_hold(3tls)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_hold(3tls) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_hold - hold TLS configuration object</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_tls_config_alloc</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_hold()</code> increments the reference count on
+the configuration object named by <em>cfg</em>, thereby preventing it
+from being freed while in use.</p>
+</div>
+<div class="paragraph">
+<p>The hold can be released by calling
+<a href="nng_tls_config_free.3tls.html"><code>nng_tls_config_free()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>Multiple holds can be placed on a configuration object; the object
+will not be freed until the last hold is released.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_free.3tls.html">nng_tls_config_free(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_own_cert.3tls.html b/man/v1.2.4/nng_tls_config_own_cert.3tls.html
new file mode 100644
index 00000000..bcd3f69e
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_own_cert.3tls.html
@@ -0,0 +1,135 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_own_cert(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_own_cert(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_own_cert - configure own certificate and key</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_config_own_cert</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">cert</span><span class="tok-p">,</span>
+ <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">key</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">pass</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_own_cert()</code> function configures a certificate <em>cert</em>
+identifying the local side of a TLS connection used with <em>cfg</em>, along with an
+associated private or secret key <em>key</em>.
+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).</p>
+</div>
+<div class="paragraph">
+<p>The <em>key</em> may be encrypted with a password, in which can be supplied in <em>pass</em>.
+The value <code>NULL</code> should be supplied for <em>pass</em> if the key is not encrypted.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>The certificate located in <em>cert</em> and <em>key</em> must be NUL (<code>\0</code>) terminated C
+strings containing
+<a href="https://tools.ietf.org/html/rfc7468">PEM</a> formatted material.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>The configuration <em>cfg</em> is already in use, and cannot be modified.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid <em>cert</em> or <em>key</em> was supplied.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_cert_key_file.3tls.html">nng_tls_config_cert_key_file(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_config_server_name.3tls.html b/man/v1.2.4/nng_tls_config_server_name.3tls.html
new file mode 100644
index 00000000..2c02eb5e
--- /dev/null
+++ b/man/v1.2.4/nng_tls_config_server_name.3tls.html
@@ -0,0 +1,122 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_config_server_name(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_config_server_name(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_config_server_name - configure remote server name</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+<span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/supplemental/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_config_server_name</span><span class="tok-p">(</span><span class="tok-n">nng_tls_config</span> <span class="tok-o">*</span><span class="tok-n">cfg</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">name</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_config_server_name()</code> function configures the remote server name
+to be used by a client when connection to a server.
+The supplied <em>name</em> is used when comparing the identity in the
+server&#8217;s certificate.
+Furthermore, when Server Name Indication (SNI) is used, the <em>name</em> may
+be sent to the server as a hint to tell it which of several possible
+certificates should be used.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+This function is only useful in configuring client behavior.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EBUSY</code>
+</td>
+<td class="hdlist2">
+<p>The configuration <em>cfg</em> is already in use, and cannot be modified.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_tls_config_auth_mode.3tls.html">nng_tls_config_auth_mode(3tls)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_options.5.html b/man/v1.2.4/nng_tls_options.5.html
new file mode 100644
index 00000000..6ab43f93
--- /dev/null
+++ b/man/v1.2.4/nng_tls_options.5.html
@@ -0,0 +1,200 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_options(5)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_options(5) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_tls_options">TLS Options</a></li>
+<li><a href="#_inherited_options">Inherited Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_options - TLS-specific options</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-cp">#define NNG_OPT_TLS_AUTH_MODE &quot;tls-authmode&quot;</span>
+<span class="tok-cp">#define NNG_OPT_TLS_CA_FILE &quot;tls-ca-file&quot;</span>
+<span class="tok-cp">#define NNG_OPT_TLS_CERT_KEY_FILE &quot;tls-cert-key-file&quot;</span>
+<span class="tok-cp">#define NNG_OPT_TLS_CONFIG &quot;tls-config&quot;</span>
+<span class="tok-cp">#define NNG_OPT_TLS_SERVER_NAME &quot;tls-server-name&quot;</span>
+<span class="tok-cp">#define NNG_OPT_TLS_VERIFIED &quot;tls-verified&quot;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This page documents the various standard options that can be set or
+retrieved on objects using TLS in the <em>nng</em> library.</p>
+</div>
+<div class="paragraph">
+<p>The option names should always be used by their symbolic definitions.</p>
+</div>
+<div class="paragraph">
+<p>In the following list of options, the name of the option is supplied,
+along with the data type of the underlying value.</p>
+</div>
+<div class="paragraph">
+<p>Some options are only meaningful or supported in certain contexts, or may
+have other access restrictions.
+An attempt has been made to include details about such restrictions in the
+description of the option.</p>
+</div>
+<div class="sect2">
+<h3 id="_tls_options">TLS Options</h3>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><a id="NNG_OPT_TLS_AUTH_MODE"></a><code>NNG_OPT_TLS_AUTH_MODE</code></dt>
+<dd>
+<p>(<code>int</code>)
+Write-only option used to configure the authentication mode used.
+See <a href="nng_tls_config_auth_mode.3tls.html"><code>nng_tls_config_auth_mode()</code></a> for
+more details.</p>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_TLS_CA_FILE"></a><code>NNG_OPT_TLS_CA_FILE</code></dt>
+<dd>
+<p>(string) Write-only option naming a file containing certificates to
+use for peer validation.
+See <a href="nng_tls_config_ca_file.3tls.html"><code>nng_tls_config_ca_file()</code></a> for more
+information.</p>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_TLS_CERT_KEY_FILE"></a><code>NNG_OPT_TLS_CERT_KEY_FILE</code></dt>
+<dd>
+<p>(string) Write-only option naming a file containing the local certificate and
+associated private key.
+The private key used must be unencrypted.
+See <a href="nng_tls_config_own_cert.3tls.html"><code>nng_tls_config_own_cert()</code></a> for more
+information.</p>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_TLS_CONFIG"></a><code>NNG_OPT_TLS_CONFIG</code></dt>
+<dd>
+<p>(<code>nng_tls_config *</code>)
+This option references the underlying
+<a href="nng_tls_config.5.html">TLS configuration object</a>.
+A hold is placed on the underlying
+configuration object before returning it.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The caller should release the hold with
+<a href="nng_tls_config_free.3tls.html"><code>nng_tls_config_free()</code></a> when it no
+longer needs the TLS configuration object.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Use this option when more advanced TLS configuration is required.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><a id="NNG_OPT_TLS_SERVER_NAME"></a><code>NNG_OPT_TLS_SERVER_NAME</code></dt>
+<dd>
+<p>(string)
+This write-only option is used to specify the name of the server.
+When used with a dialer, this potentially configures SNI (server name
+indication, which is used as a hint by a multihosting server to choose the
+appropriate certificate to provide) and also is used to validate the
+name presented in the server&#8217;s x509 certificate.</p>
+</dd>
+<dt class="hdlist1"><a id="NNT_OPT_TLS_VERIFIED"></a><code>NNG_OPT_TLS_VERIFIED</code></dt>
+<dd>
+<p>(<code>bool</code>)
+This read-only option indicates whether the remote peer has been properly verified using TLS
+authentication.
+May return incorrect results if peer authentication is disabled.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_inherited_options">Inherited Options</h3>
+<div class="paragraph">
+<p>Generally, the following option values are also available for TLS objects,
+when appropriate for the context:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_LOCADDR"><code>NNG_OPT_LOCADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_options.5.html#NNG_OPT_REMADDR"><code>NNG_OPT_REMADDR</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_KEEPALIVE"><code>NNG_OPT_TCP_KEEPALIVE</code></a></p>
+</li>
+<li>
+<p><a href="nng_tcp_options.5.html#NNG_OPT_TCP_NODELAY"><code>NNG_OPT_TCP_NODELAY</code></a></p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tls_dialer_getopt.3tls.html">nng_tls_dialer_getopt(3tls)</a>,
+<a href="nng_tls_dialer_setopt.3tls.html">nng_tls_dialer_setopt(3tls)</a>,
+<a href="nng_tls_getopt.3tls.html">nng_tls_getopt(3tls)</a>,
+<a href="nng_tls_listener_getopt.3tls.html">nng_tls_listener_getopt(3tls)</a>,
+<a href="nng_tls_listener_setopt.3tls.html">nng_tls_listener_setopt(3tls)</a>,
+<a href="nng_tls_setopt.3tls.html">nng_tls_setopt(3tls)</a>,
+<a href="nng_options.5.html">nng_options(5)</a>
+<a href="nng_tcp_options.5.html">nng_tcp_options(5)</a>
+<a href="nng_tls_config.5.html">nng_tls_config(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_tls_register.3.html b/man/v1.2.4/nng_tls_register.3.html
new file mode 100644
index 00000000..16674813
--- /dev/null
+++ b/man/v1.2.4/nng_tls_register.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_tls_register(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_tls_register(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_tls_register - register tls transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/tls/tls.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_tls_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_tls_register()</code> function registers the
+<em>tls</em> transport for use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The transport is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tls.7.html">nng_tls(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_url_clone.3.html b/man/v1.2.4/nng_url_clone.3.html
new file mode 100644
index 00000000..fc83e32a
--- /dev/null
+++ b/man/v1.2.4/nng_url_clone.3.html
@@ -0,0 +1,97 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_url_clone(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_url_clone(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_url_clone - clone URL structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_url_clone</span><span class="tok-p">(</span><span class="tok-n">nng_url</span> <span class="tok-o">**</span><span class="tok-n">dup</span><span class="tok-p">,</span> <span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">orig</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_url_clone()</code> makes a clone of the original URL structure <em>orig</em>, and
+saves the result in the location pointed by <em>dup</em>.
+This clone includes fully duplicating each of the member fields.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to duplicate a message.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_url_free.3.html">nng_url_free(3)</a>,
+<a href="nng_url_parse.3.html">nng_url_parse(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_url_free.3.html b/man/v1.2.4/nng_url_free.3.html
new file mode 100644
index 00000000..dfb24208
--- /dev/null
+++ b/man/v1.2.4/nng_url_free.3.html
@@ -0,0 +1,86 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_url_free(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_url_free(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_url_free - free a URL structure</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">void</span> <span class="tok-nf">nng_url_free</span><span class="tok-p">(</span><span class="tok-n">nng_url</span> <span class="tok-o">*</span><span class="tok-n">url</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_url_free()</code> function deallocates the <em>url</em> entirely, including
+any of its members.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_url_clone.3.html">nng_url_clone(3)</a>,
+<a href="nng_url_parse.3.html">nng_url_parse(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_url_parse.3.html b/man/v1.2.4/nng_url_parse.3.html
new file mode 100644
index 00000000..6c5caf74
--- /dev/null
+++ b/man/v1.2.4/nng_url_parse.3.html
@@ -0,0 +1,188 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_url_parse(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_url_parse(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_url_canonicalization">URL Canonicalization</a></li>
+</ul>
+</li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_url_parse - create URL structure from a string</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_url_parse</span><span class="tok-p">(</span><span class="tok-n">nng_url</span> <span class="tok-o">**</span><span class="tok-n">urlp</span><span class="tok-p">,</span> <span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">str</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_url_parse()</code> function parses the string <em>str</em> containing an
+<a href="https://tools.ietf.org/html/rfc3986">RFC 3986</a> compliant URL, and creates
+a structure containing the results. A pointer to the resulting structure
+is stored in <em>urlp</em>.</p>
+</div>
+<div class="paragraph">
+<p>The <code>nng_url</code> structure has at least the following members:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-k">struct</span> <span class="tok-n">nng_url</span> <span class="tok-p">{</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_rawurl</span><span class="tok-p">;</span> <span class="tok-c1">// Unparsed URL, with minimal canonicalization.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_scheme</span><span class="tok-p">;</span> <span class="tok-c1">// Scheme, such as &quot;http&quot;; always lower case.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_userinfo</span><span class="tok-p">;</span> <span class="tok-c1">// Userinfo component, or NULL.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_host</span><span class="tok-p">;</span> <span class="tok-c1">// Full host, including port if present.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_hostname</span><span class="tok-p">;</span> <span class="tok-c1">// Hostname only (or address), or empty string.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_port</span><span class="tok-p">;</span> <span class="tok-c1">// Port number, may be default or empty string.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_path</span><span class="tok-p">;</span> <span class="tok-c1">// Path if present, empty string otherwise.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_query</span><span class="tok-p">;</span> <span class="tok-c1">// Query info if present, NULL otherwise.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_fragment</span><span class="tok-p">;</span> <span class="tok-c1">// Fragment if present, NULL otherwise.</span>
+ <span class="tok-kt">char</span> <span class="tok-o">*</span><span class="tok-n">u_requri</span><span class="tok-p">;</span> <span class="tok-c1">// Request-URI (path[?query][#fragment])</span>
+<span class="tok-p">};</span></code></pre>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_url_canonicalization">URL Canonicalization</h3>
+<div class="paragraph">
+<p>The <code>nng_url_parse()</code> function also canonicalizes the results, as
+follows:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>The URL is parsed into the various components.</p>
+</li>
+<li>
+<p>The <code>u_scheme</code>, <code>u_hostname</code>, <code>u_host</code>, and <code>u_port</code> members are
+converted to lower case.</p>
+</li>
+<li>
+<p>Percent-encoded values for
+<a href="https://tools.ietf.org/html/rfc3986#section-2.3">unreserved characters</a>
+converted to their unencoded forms.</p>
+</li>
+<li>
+<p>Additionally URL percent-encoded values for characters in the path
+and with numeric values larger than 127 (i.e. not ASCII) are decoded.</p>
+</li>
+<li>
+<p>The resulting <code>u_path</code> 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 <code>NNG_EINVAL</code>.</p>
+</li>
+<li>
+<p>Path segments consisting of <code>.</code> and <code>..</code> are resolved as per
+<a href="https://tools.ietf.org/html/rfc3986#section-6.2.2.3">RFC 3986 6.2.2.3</a>.</p>
+</li>
+<li>
+<p>Further, empty path segments are removed, meaning that duplicate
+slash (<code>/</code>) separators are removed from the path.</p>
+</li>
+<li>
+<p>If a port was not specified, but the scheme defines a default
+port, then <code>u_port</code> will be filled in with the value of the default port.</p>
+</li>
+</ol>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Only the <code>u_userinfo</code>, <code>u_query</code>, and <code>u_fragment</code> members will ever be
+ <code>NULL</code>. The other members will be filled in with either default values
+ or the empty string if they cannot be determined from <em>str</em>.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient free memory exists to allocate a message.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_EINVAL</code>
+</td>
+<td class="hdlist2">
+<p>An invalid URL was supplied.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_url_clone.3.html">nng_url_clone(3)</a>,
+<a href="nng_url_free.3.html">nng_url_free(3)</a>,
+<a href="nng_strerror.3.html">nng_strerror(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_version.3.html b/man/v1.2.4/nng_version.3.html
new file mode 100644
index 00000000..21cd062e
--- /dev/null
+++ b/man/v1.2.4/nng_version.3.html
@@ -0,0 +1,115 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_version(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_version(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_version - report library version</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/nng.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-k">const</span> <span class="tok-kt">char</span> <span class="tok-o">*</span> <span class="tok-nf">nng_version</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_version()</code> function returns a human readable version number
+for the <em>nng</em> library.
+This is intended for output in programs, and so forth.</p>
+</div>
+<div class="paragraph">
+<p>Additionally, compile time version information is available
+via some predefined macros:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_MAJOR_VERSION</code></dt>
+<dd>
+<p>Major version number.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_MINOR_VERSION</code></dt>
+<dd>
+<p>Minor version number.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_PATCH_VERSION</code></dt>
+<dd>
+<p>Patch version number.</p>
+</dd>
+</dl>
+</div>
+<div class="paragraph">
+<p>The <em>nng</em> library is developed and released using
+<a href="http://www.semver.org">Semantic Versioning 2.0</a>, and
+the version numbers reported refer to both the API and the
+library itself.
+(The ABI&#8201;&#8212;&#8201;application binary interface&#8201;&#8212;&#8201;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.)</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>C string (<code>NUL</code>-terminated) containing the library version number.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>None.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ws.7.html b/man/v1.2.4/nng_ws.7.html
new file mode 100644
index 00000000..1e3f58dc
--- /dev/null
+++ b/man/v1.2.4/nng_ws.7.html
@@ -0,0 +1,273 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ws(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ws(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_registration">Registration</a></li>
+<li><a href="#_uri_format">URI Format</a></li>
+<li><a href="#_socket_address">Socket Address</a></li>
+<li><a href="#_server_instances">Server Instances</a></li>
+<li><a href="#_transport_options">Transport Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ws - WebSocket transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/websocket/ws.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ws_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span>
+<span class="tok-kt">int</span> <span class="tok-nf">nng_wss_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>ws</em> transport provides communication support between
+<em>nng</em> sockets across a TCP/IP network using
+<a href="https://tools.ietf.org/html/rfc6455">WebSockets</a>.
+Both IPv4 and IPv6 are supported when the underlying platform also supports it.</p>
+</div>
+<div class="paragraph">
+<p>The protocol details are documented in
+<a href="http://nanomsg.org/rfcs/sp-websocket-v1.html">WebSocket Mapping for Scalability Protocols</a>.</p>
+</div>
+<div class="sect2">
+<h3 id="_registration">Registration</h3>
+<div class="paragraph">
+<p>Depending upon how the library was built, it may be necessary to
+register the transport by calling <a href="nng_ws_register.3.html"><code>nng_ws_register()</code></a>.</p>
+</div>
+<div class="paragraph">
+<p>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 <a href="nng_wss_register.3.html"><code>nng_wss_register()</code></a> function.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_uri_format">URI Format</h3>
+<div class="paragraph">
+<p>
+This transport uses URIs using the scheme <code>ws://</code>, 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 <code>/</code> is assumed.)
+For example, the URI <code>ws://localhost/app/pubsub</code> would use
+port 80 on localhost, with the path <code>/app/pubsub</code>.</p>
+</div>
+<div class="paragraph">
+<p>Secure WebSockets
+(if enabled) use the scheme <code>wss://</code>, and the default TCP port number of 443.
+Otherwise the format is the same as for regular WebSockets.</p>
+</div>
+<div class="paragraph">
+<p>When specifying IPv6 addresses, the address must be enclosed in
+square brackets (<code>[]</code>) to avoid confusion with the final colon
+separating the port.</p>
+</div>
+<div class="paragraph">
+<p>For example, the same path and port on the IPv6 loopback address (<code>::1</code>)
+would be specified as <code>ws://[::1]/app/pubsub</code>.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The value specified as the host, if any, will also be used
+in the <code>Host:</code> HTTP header during HTTP negotiation.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>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 <code>::</code>, and both IPv4 and IPv6 connections will be
+permitted, with IPv4 addresses mapped to IPv6 addresses.)</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_socket_address">Socket Address</h3>
+<div class="paragraph">
+<p>When using an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a> structure,
+the actual structure is either of type
+<a href="nng_sockaddr_in.5.html"><code>nng_sockaddr_in</code></a> (for IPv4) or
+<a href="nng_sockaddr_in6.5.html"><code>nng_sockaddr_in6</code></a> (for IPv6).</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_server_instances">Server Instances</h3>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="paragraph">
+<p>All sharing of server instances is only typically possible within the same
+process.</p>
+</div>
+<div class="paragraph">
+<p>The server may also be used by other things (for example to serve static
+content), in the same process.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_transport_options">Transport Options</h3>
+<div class="paragraph">
+<p>The following transport options are available. Note that
+setting these must be done before the transport is started.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+The TLS specific options (beginning with <code>NNG_OPT_TLS_</code>) are
+only available for <code>wss://</code> endpoints.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_WS_REQUEST_HEADERS</code></dt>
+<dd>
+<p>(string) Concentation 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.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_WS_RESPONSE_HEADERS</code></dt>
+<dd>
+<p>(string) Concatenation 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.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_TLS_CONFIG</code></dt>
+<dd>
+<p>(<code>nng_tls_config *</code>) The underlying TLS
+configuration object for <code>wss://</code> endpoints.
+A hold is placed on the underlying
+configuration object before returning it.
+The caller should release the object with
+<a href="nng_tls_config_free.3tls.html"><code>nng_tls_config_free()</code></a> when it no
+longer needs the TLS configuration.</p>
+</dd>
+</dl>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+Use this option when advanced TLS configuration is required.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_TLS_CA_FILE</code></dt>
+<dd>
+<p>(string) Write-only option naming a file containing certificates to
+use for peer validation.
+See <a href="nng_tls_config_ca_file.3tls.html"><code>nng_tls_config_ca_file()</code></a> for more
+information.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_TLS_CERT_KEY_FILE</code></dt>
+<dd>
+<p>(string) Write-only option naming a file containing the local certificate and
+associated private key.
+The private key used must be unencrypted.
+See <a href="nng_tls_config_own_cert.3tls.html"><code>nng_tls_config_own_cert()</code></a> for more
+information.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_TLS_AUTH_MODE</code></dt>
+<dd>
+<p>(<code>int</code>) Write-only option used to configure the authentication mode used.
+See <a href="nng_tls_config_auth_mode.3tls.html"><code>nng_tls_config_auth_mode()</code></a> for
+more details.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_TLS_VERIFIED</code></dt>
+<dd>
+<p>(<code>bool</code>) Whether the remote peer has been properly verified using TLS
+authentication.
+May return incorrect results if peer authentication is disabled.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_tls_config_alloc.3tls.html">nng_tls_config_alloc(3tls)</a>,
+<a href="nng_sockaddr.5.html">nng_sockaddr(5)</a>,
+<a href="nng_sockaddr_in.5.html">nng_sockaddr_in(5)</a>,
+<a href="nng_sockaddr_in6.5.html">nng_sockaddr_in6(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_ws_register.3.html b/man/v1.2.4/nng_ws_register.3.html
new file mode 100644
index 00000000..1eb11d77
--- /dev/null
+++ b/man/v1.2.4/nng_ws_register.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_ws_register(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_ws_register(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_ws_register - register WebSocket transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/websocket/ws.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_ws_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_ws_register()</code> function registers the
+<em>ws</em> transport for use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The transport is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ws.7.html">nng_ws(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_wss_register.3.html b/man/v1.2.4/nng_wss_register.3.html
new file mode 100644
index 00000000..a62f28d8
--- /dev/null
+++ b/man/v1.2.4/nng_wss_register.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_wss_register(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_wss_register(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_wss_register - register WebSocket secure transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/websocket/ws.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_wss_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_wss_register()</code> function registers the
+<em>wss</em> transport for use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The transport is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_ws.7.html">nng_ws(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_zerotier.7.html b/man/v1.2.4/nng_zerotier.7.html
new file mode 100644
index 00000000..d7f99950
--- /dev/null
+++ b/man/v1.2.4/nng_zerotier.7.html
@@ -0,0 +1,392 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_zerotier(7)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_zerotier(7) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a>
+<ul class="sectlevel2">
+<li><a href="#_registration">Registration</a></li>
+<li><a href="#_uri_format">URI Format</a></li>
+<li><a href="#_socket_address">Socket Address</a></li>
+<li><a href="#_node_presence">Node Presence</a></li>
+<li><a href="#_network_status">Network Status</a></li>
+<li><a href="#_transport_options">Transport Options</a></li>
+</ul>
+</li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_zerotier - ZeroTier transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/zerotier/zerotier.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_zt_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>
+The <em>zt</em> transport provides communication support for
+<em>nng</em> applications over a <a href="http://www.zerotier.com">ZeroTier</a> network,
+using a Virtual Layer 2 packet facility.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This transport is experimental.
+To utilize it at present, the library must be built with support, and linked
+against a suitable <code>libzerotiercore</code> library.
+Further information about building with this support are in the build
+documentation included with the distribution.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The <code>libzerotiercore</code> library at present is covered under different
+license terms than the rest of <em>nng</em>. Please be careful to review
+and adhere to the licensing terms.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+The ZeroTier transport can take a long time to establish an
+initial connection&#8201;&#8212;&#8201;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.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>While ZeroTier makes use of the host&#8217;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.</p>
+</div>
+<div class="paragraph">
+<p>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.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+This document assumes that the reader is familiar with ZeroTier
+concepts and administration.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_registration">Registration</h3>
+<div class="paragraph">
+<p>Depending upon how the library was built, it may be necessary to
+register the transport by calling
+<a href="nng_zt_register.3.html"><code>nng_zt_register()</code></a>.
+This function
+returns zero on success, or an nng error value if the transport
+cannot be initialized for any reason.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_uri_format">URI Format</h3>
+<div class="paragraph">
+<p>
+This transport uses URIs using the scheme <code>zt://</code>, followed by a node
+number (ten hexadecimal digits) followed by a <code>.</code> delimited, and then
+a network address (sixteen hexadecimal digits), followed by a colon (<code>:</code>)
+and service or port number (decimal value,
+up to 24-bits).
+For example, the URI <code>zt://fedcba9876.0123456789abdef:999</code> indicates
+that node fedcba9876 on network 0123456789abcdef is listening on port 999.</p>
+</div>
+<div class="paragraph">
+<p>The special value <code>*</code> can be used in lieu of a node number to represent
+the node&#8217;s own node number.</p>
+</div>
+<div class="paragraph">
+<p>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
+<a href="nng_listener_getopt.3.html"><code>nng_listener_getopt()</code></a> function.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_socket_address">Socket Address</h3>
+<div class="paragraph">
+<p>When using an <a href="nng_sockaddr.5.html"><code>nng_sockaddr</code></a> structure,
+the actual structure is of type
+<a href="nng_sockaddr_zt.5.html"><code>nng_sockaddr_zt</code></a>.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_node_presence">Node Presence</h3>
+<div class="paragraph">
+<p>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 <code>NNG_OPT_ZT_HOME</code> option.</p>
+</div>
+<div class="paragraph">
+<p>It is possible for a single application to join multiple networks
+using the same node, or using separate nodes.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_network_status">Network Status</h3>
+<div class="paragraph">
+<p>
+A ZeroTier node can be in one of the following states, which can be obtained
+with the <code>NNG_OPT_ZT_NETWORK_STATUS</code> option:</p>
+</div>
+<div id="NNG_ZT_STATUS_UP" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_ZT_STATUS_UP</code></dt>
+<dd>
+<p>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 (<code>NNG_OPT_ZT_NETWORK_NAME</code>)
+is available.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_ZT_STATUS_CONFIG</code></dt>
+<dd>
+<p>The ZeroTier node is still configuring, network services are not available.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_ZT_STATUS_DENIED</code></dt>
+<dd>
+<p>The node does not have permission to join the ZeroTier network.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_ZT_STATUS_NOTFOUND</code></dt>
+<dd>
+<p>The ZeroTier network is not found.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_ZT_STATUS_ERROR</code></dt>
+<dd>
+<p>Some other ZeroTier error has occurred; the network is not available.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_ZT_STATUS_OBSOLETE</code></dt>
+<dd>
+<p>The node is running obsolete software; the network is not available.</p>
+</dd>
+<dt class="hdlist1"><code>NNG_ZT_STATUS_UNKNOWN</code></dt>
+<dd>
+<p>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.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_transport_options">Transport Options</h3>
+<div class="paragraph">
+<p>The following transport options are available:</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_HOME</code></dt>
+<dd>
+<p>(string) This option represents the &#8220;home directory&#8221;, 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.</p>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+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.
+</td>
+</tr>
+</table>
+</div>
+</dd>
+<dt class="hdlist1"><code>NNG_OPT_ZT_NWID</code></dt>
+<dd>
+<p>(<code>uint64_t</code>) The 64-bit ZeroTier network number (native byte order).</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_NODE" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_NODE</code></dt>
+<dd>
+<p>(<code>uint64_t</code>) The ZeroTier 40-bit node address (native byte order).</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_NETWORK_STATUS" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_NETWORK_STATUS</code></dt>
+<dd>
+<p>
+(<code>int</code>) The ZeroTier network status.
+See <a href="#_network_status">Network Status</a> for an explanation of this option.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_NETWORK_NAME" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_NETWORK_NAME</code></dt>
+<dd>
+<p>
+(string) The name of the network
+as established by the ZeroTier network administrator.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_CONN_TIME" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_CONN_TIME</code></dt>
+<dd>
+<p>(<a href="nng_duration.5.html"><code>nng_duration</code></a>)
+The time to wait between sending connection attempts,
+only used with dialers.
+The default is 500 msec.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_CONN_TRIES" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_CONN_TRIES</code></dt>
+<dd>
+<p>(<code>int</code>) The maximum number 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
+<code>NNG_OPT_ZT_CONN_TIME</code> is at its default of 500.
+If the value is set to 0, then connection attempts will keep retrying forever.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_PING_TIME" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_PING_TIME</code></dt>
+<dd>
+<p>(<a href="nng_duration.5.html"><code>nng_duration</code></a>) If no traffic has been received from
+the ZeroTier peer after this
+period of time, then a &#8220;ping&#8221; message is sent to check if the peer
+is still alive.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_PING_TRIES" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_PING_TRIES</code></dt>
+<dd>
+<p>(<code>int</code>) If this number of consecutive &#8220;ping&#8221; 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.</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_MTU" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_MTU</code></dt>
+<dd>
+<p>(<code>size_t</code>) The ZeroTier virtual network MTU (read-only) as configured
+on the network; 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.)</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_ORBIT" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_ORBIT</code></dt>
+<dd>
+<p>(<code>uint64_t[2]</code>) Write-only array of two <code>uint64_t</code> values,
+indicating the ID of a ZeroTier &#8220;moon&#8221;, and the node ID of the root server
+for that moon. (The ID may be zero if the moon ID is the same as its
+root server ID, which is conventional.)</p>
+</dd>
+</dl>
+</div>
+<div id="NNG_OPT_ZT_DEORBIT" class="dlist">
+<dl>
+<dt class="hdlist1"><code>NNG_OPT_ZT_DEORBIT</code></dt>
+<dd>
+<p>(<code>uint64_t</code>) Write-only option indicating the moon
+ID to &#8220;deorbit&#8221;. If the node is not already orbiting the moon, then
+this has no effect.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_sockaddr_zt.5.html">nng_sockaddr_zt(5)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nng_zt_register.3.html b/man/v1.2.4/nng_zt_register.3.html
new file mode 100644
index 00000000..31ff4f78
--- /dev/null
+++ b/man/v1.2.4/nng_zt_register.3.html
@@ -0,0 +1,102 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nng_zt_register(3)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nng_zt_register(3) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_return_values">RETURN VALUES</a></li>
+<li><a href="#_errors">ERRORS</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nng_zt_register - register ZeroTier transport</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span> <span class="tok-cpf">&lt;nng/transport/zerotier/zerotier.h&gt;</span><span class="tok-cp"></span>
+
+<span class="tok-kt">int</span> <span class="tok-nf">nng_zt_register</span><span class="tok-p">(</span><span class="tok-kt">void</span><span class="tok-p">);</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>nng_zt_register()</code> function registers the
+<em>zt</em> transport for use.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_return_values">RETURN VALUES</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This function returns 0 on success, and non-zero otherwise.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_errors">ERRORS</h2>
+<div class="sectionbody">
+<div class="hdlist">
+<table>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOMEM</code>
+</td>
+<td class="hdlist2">
+<p>Insufficient memory is available.</p>
+</td>
+</tr>
+<tr>
+<td class="hdlist1">
+<code>NNG_ENOTSUP</code>
+</td>
+<td class="hdlist2">
+<p>The transport is not supported.</p>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="nng_zerotier.7.html">nng_zerotier(7)</a>,
+<a href="nng.7.html">nng(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/nngcat.1.html b/man/v1.2.4/nngcat.1.html
new file mode 100644
index 00000000..4154aed4
--- /dev/null
+++ b/man/v1.2.4/nngcat.1.html
@@ -0,0 +1,527 @@
+---
+version: v1.2.4
+layout: refman
+---
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<meta name="generator" content="Asciidoctor 2.0.10">
+<title>nngcat(1)</title>
+<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
+<link rel="stylesheet" href="./asciidoctor.css">
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
+</head>
+<body class="manpage toc2 toc-left">
+<div id="header">
+<h1>nngcat(1) Manual Page</h1>
+<div id="toc" class="toc2">
+<div id="toctitle">Table of Contents</div>
+<ul class="sectlevel1">
+<li><a href="#_synopsis">SYNOPSIS</a></li>
+<li><a href="#_description">DESCRIPTION</a></li>
+<li><a href="#_options">OPTIONS</a>
+<ul class="sectlevel2">
+<li><a href="#_generic_options">Generic Options</a></li>
+<li><a href="#_protocol_selection_options">Protocol Selection Options</a></li>
+<li><a href="#_peer_selection_options">Peer Selection Options</a></li>
+<li><a href="#_receive_options">Receive Options</a></li>
+<li><a href="#_transmit_options">Transmit Options</a></li>
+<li><a href="#_tls_options">TLS Options</a></li>
+<li><a href="#_zerotier_options">ZeroTier Options</a></li>
+</ul>
+</li>
+<li><a href="#_examples">EXAMPLES</a></li>
+<li><a href="#_see_also">SEE ALSO</a></li>
+</ul>
+</div>
+<h2 id="_name">NAME</h2>
+<div class="sectionbody">
+<p>nngcat - command line access to Scalability Protocols</p>
+</div>
+</div>
+<div id="content">
+<div class="sect1">
+<h2 id="_synopsis">SYNOPSIS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p><strong>nngcat</strong> --help</p>
+</div>
+<div class="paragraph">
+<p><strong>nngcat</strong> --version</p>
+</div>
+<div class="paragraph">
+<p><strong>nngcat</strong> [<em>OPTION</em>]&#8230;&#8203;</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_description">DESCRIPTION</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <em>nngcat</em> 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.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_options">OPTIONS</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The possible values for <em>OPTION</em> are described below.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+The <em>nngcat</em> utility accepts shortened versions of these options, as long
+as the supplied option is unambiguous.
+For example <code>--comp</code> can be used in lieu
+of <code>--compat</code>, but <code>--re</code> may not be used for anything because it could mean
+any of <code>--req</code>, <code>--rep</code>, or <code>--respondent</code>.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>When using the long form of an option (names prefixed with with <code>--</code>), 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. <code>--subscribe=times</code>), by appending
+the option with a colon and the value (e.g. <code>--subscribe:tribune</code>) or by
+providing the data as the next program argument (e.g. <code>--subscribe herald</code>).</p>
+</div>
+<div class="paragraph">
+<p>When using short form options (a single letter prefixed with a <code>-</code>),
+if the option takes a value it may either be immediately appended to
+the value (e.g. <code>-L5678</code>) or provided as the next program argument
+(e.g. <code>-L 5678</code>).</p>
+</div>
+<div class="paragraph">
+<p>POSIX style option clustering of single letter options is not supported;
+each option must be presented as a separate argument to the program.</p>
+</div>
+<div class="sect2">
+<h3 id="_generic_options">Generic Options</h3>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><strong>-h, --help</strong></dt>
+<dd>
+<p>Get usage help.</p>
+</dd>
+<dt class="hdlist1"><strong>-V, --version</strong></dt>
+<dd>
+<p>Print the version and exit.</p>
+</dd>
+<dt class="hdlist1"><strong>-v, --verbose</strong></dt>
+<dd>
+<p>Select verbose operation.</p>
+</dd>
+<dt class="hdlist1"><strong>-q, --silent</strong></dt>
+<dd>
+<p>Select silent operation.</p>
+</dd>
+<dt class="hdlist1"><strong>--compat</strong></dt>
+<dd>
+<p>Compatible mode.
+This cause <em>nngcat</em> to behave more like the legacy
+<em>nanocat</em> application.
+In this mode connections are made asynchronously,
+and the <strong>--pair</strong> option selects version 0 of
+the <a href="nng_pair.7.html"><em>pair</em></a> protocol instead of version 1.</p>
+</dd>
+<dt class="hdlist1"><strong>--subscribe</strong>=<em>TOPIC</em></dt>
+<dd>
+<p>Subscribe to <em>TOPIC</em>. This option can only be used with the
+<a href="nng_sub.7.html"><em>sub</em></a> protocol.
+The <em>TOPIC</em> 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.</p>
+</dd>
+<dt class="hdlist1"><strong>--count=</strong>=<em>COUNT</em></dt>
+<dd>
+<p>Limit the number of iterations when looping to <em>COUNT</em> iterations.
+For protocols that only send, this will only send <em>COUNT</em> messages before
+exiting.
+For protocols that only receive, this will only receive <em>COUNT</em> messages
+before exiting.
+For protocols that involve a full exchange, this will only perform <em>COUNT</em>
+exchanges (each exchange is characterized by at most a single send, and
+one or more receives.)
+If <em>COUNT</em> is zero, then an infinite number of iterations is performed.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_protocol_selection_options">Protocol Selection Options</h3>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+At least one protocol must be selected.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><strong>--bus, --bus0</strong></dt>
+<dd>
+<p>Select the <a href="nng_bus.7.html"><em>bus</em></a> version 0 protocol.
+This protocol can send and receive messages to and from other <em>bus</em> version 0
+peers.</p>
+</dd>
+<dt class="hdlist1"><strong>--req, --req0</strong></dt>
+<dd>
+<p>Select the <a href="nng_req.7.html"><em>req</em></a> version 0 protocol.
+This protocol sends messages to <a href="nng_rep.7.html"><em>rep</em></a> version 0
+peers and receives replies from them.</p>
+</dd>
+<dt class="hdlist1"><strong>--rep, --rep0</strong></dt>
+<dd>
+<p>Select the <a href="nng_rep.7.html"><em>rep</em></a> version 0 protocol.
+This protocol receives messages from <a href="nng_req.7.html"><em>req</em></a> version 0 peers
+and can send replies to them.</p>
+</dd>
+<dt class="hdlist1"><strong>--pub, --pub0</strong></dt>
+<dd>
+<p>Select the <a href="nng_pub.7.html"><em>pub</em></a> version 0 protocol.
+This protocol sends messages to <a href="nng_sub.7.html"><em>sub</em></a> version peers.</p>
+</dd>
+<dt class="hdlist1"><strong>--sub, --sub0</strong></dt>
+<dd>
+<p>Select the <a href="nng_sub.7.html"><em>sub</em></a> version 0 protocol.
+This protocol receives messages from <a href="nng_pub.7.html"><em>pub</em></a> version
+0 peers, and filters them based on subscriptions set with <strong>--subscribe</strong>.</p>
+</dd>
+<dt class="hdlist1"><strong>--push, --push0</strong></dt>
+<dd>
+<p>Select the <a href="nng_push.7.html"><em>push</em></a> version 0 protocol.
+This protocol sends messages to <a href="nng_pull.7.html"><em>pull</em></a> version 0 peers.
+A given message is normally only delivered to a single peer.</p>
+</dd>
+<dt class="hdlist1"><strong>--pull, --pull0</strong></dt>
+<dd>
+<p>Select the <a href="nng_pull.7.html"><em>pull</em></a> version 0 protocol.
+This protocol receives
+messages from <a href="nng_push.7.html"><em>push</em></a> version 0 peers.</p>
+</dd>
+<dt class="hdlist1"><strong>--pair0</strong></dt>
+<dd>
+<p>Select the <a href="nng_pair.7.html"><em>pair</em></a> version 0 protocol.
+This protocol can send and receive messages with one connected <em>pair</em>
+version 0 peer.</p>
+</dd>
+<dt class="hdlist1"><strong>--pair1</strong></dt>
+<dd>
+<p>Select the <a href="nng_pair.7.html"><em>pair</em></a> version 1 protocol.
+This protocol can send and receive messages with one connected <em>pair</em>
+version 1 peer.
+It is not supported in <strong>--compat</strong> mode.
+(Polyamorous mode is not supported
+in <em>nngcat</em>, although peers may be using polyamorous mode.)</p>
+</dd>
+<dt class="hdlist1"><strong>--pair</strong></dt>
+<dd>
+<p>Acts as an alias for <strong>--pair1</strong>, unless <strong>--compat</strong> mode is selected, in
+which case it acts as an alias for <strong>--pair0</strong>.</p>
+</dd>
+<dt class="hdlist1"><strong>--surveyor, --surveyor0</strong></dt>
+<dd>
+<p>Select the <a href="nng_surveyor.7.html"><em>surveyor</em></a> version 0 protocol.
+This protocol sends a survey request to <a href="nng_respondent.7.html"><em>respondent</em></a>
+version 0 peers, and then receives replies from them.</p>
+</dd>
+<dt class="hdlist1"><strong>--respondent, --respondent0</strong></dt>
+<dd>
+<p>Select the <a href="nng_respondent.7.html"><em>respondent</em></a> version 0 protocol.
+This protocol receives survey requests from <a href="nng_surveyor.7.html"><em>surveyor</em></a>
+version 0 peers, and can send a reply to them.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_peer_selection_options">Peer Selection Options</h3>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+At least one peer address must be selected.
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+While legacy <em>nanocat</em> only supported one peer, <em>nng</em> can support
+more than one peer on a given connection.
+</td>
+</tr>
+</table>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><strong>--connect, --dial</strong>=<em>URL</em></dt>
+<dd>
+<p>Connect to the peer at the address specified by <em>URL</em>.</p>
+</dd>
+<dt class="hdlist1"><strong>--bind, --listen</strong>=<em>URL</em></dt>
+<dd>
+<p>Bind to, and accept connections from peers, at the address specified by <em>URL</em>.</p>
+</dd>
+<dt class="hdlist1"><strong>-x, --connect-ipc</strong>=<em>PATH</em></dt>
+<dd>
+<p>Connect to the IPC path specified by <em>PATH</em>. This is the same as
+<strong>--connect</strong>=ipc://<em>PATH</em>.</p>
+</dd>
+<dt class="hdlist1"><strong>-X, --bind-ipc</strong>=<em>PATH</em></dt>
+<dd>
+<p>Bind to the IPC path specified by <em>PATH</em>. This is the same as
+<strong>--bind</strong>=ipc://<em>PATH</em>.</p>
+</dd>
+<dt class="hdlist1"><strong>-l, --connect-local</strong>=<em>PORT</em></dt>
+<dd>
+<p>Connect to <code>localhost</code> at the TCP port specified by <em>PORT</em>. This is the same
+as <strong>--connect</strong>=tcp://127.0.0.1:<em>PORT</em>.</p>
+</dd>
+<dt class="hdlist1"><strong>-L, --bind-local</strong>=<em>PORT</em></dt>
+<dd>
+<p>Bind to the TCP port specified by <em>PORT</em>. This is the same as
+<strong>--bind</strong>=tcp://127.0.0.1:<em>PORT</em>.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_receive_options">Receive Options</h3>
+<div class="paragraph">
+<p>Data messages received can be formatted in different ways.
+These options can only be specified when using a protocol that
+receives messages.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><strong>-A, --ascii</strong></dt>
+<dd>
+<p>The same as specifying <strong>--format</strong>=<code>ascii</code>.</p>
+</dd>
+<dt class="hdlist1"><strong>-Q, --quoted</strong></dt>
+<dd>
+<p>The same as specifying <strong>--format</strong>=<code>quoted</code>.</p>
+</dd>
+<dt class="hdlist1"><strong>--hex</strong></dt>
+<dd>
+<p>The same as specifying <strong>--format</strong>=<code>hex</code>.</p>
+</dd>
+<dt class="hdlist1"><strong>--msgpack</strong></dt>
+<dd>
+<p>The same as specifying <strong>--format</strong>=<code>msgpack</code>.</p>
+</dd>
+<dt class="hdlist1"><strong>--raw</strong></dt>
+<dd>
+<p>The same as specifying <strong>--format</strong>=<code>raw</code>.</p>
+</dd>
+<dt class="hdlist1"><strong>--receive-timeout</strong>=<em>SEC</em></dt>
+<dd>
+<p>Give up receiving messages after <em>SEC</em> seconds pass without any received
+messages.</p>
+</dd>
+<dt class="hdlist1"><strong>--recv-maxsz</strong>=<em>COUNT</em></dt>
+<dd>
+<p>Set the maximum message size socket will accept to <em>COUNT</em> bytes.
+Messages larger than this will be discarded.
+The default is 1048576 (1 MB).
+To eliminate any restriction, use 0.</p>
+</dd>
+<dt class="hdlist1"><strong>--format</strong>=<em>FORMAT</em></dt>
+<dd>
+<p>Format data as indicated. The <em>FORMAT</em> can be any of:</p>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><code>no</code></dt>
+<dd>
+<p>No output at all.</p>
+</dd>
+<dt class="hdlist1"><code>raw</code></dt>
+<dd>
+<p>Raw output, every byte received is sent to standard output.</p>
+</dd>
+<dt class="hdlist1"><code>ascii</code></dt>
+<dd>
+<p>ASCII safe, printable ASCII is emitted verbatim, with other
+bytes substituted with <code>.</code> (period).</p>
+</dd>
+<dt class="hdlist1"><code>quoted</code></dt>
+<dd>
+<p>Messages are printed as quoted strings, using C language
+conventions.</p>
+</dd>
+<dt class="hdlist1"><code>hex</code></dt>
+<dd>
+<p> Messages are printed as quoted strings, with every byte appearing as an escaped hexadecimal value, such as <code>\x2E</code>.</p>
+</dd>
+<dt class="hdlist1"><code>msgpack</code></dt>
+<dd>
+<p>
+Messages are emitted as <a href="https://msgpack.org">MessagePack</a> "bin format"
+(byte arrays).</p>
+</dd>
+</dl>
+</div>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_transmit_options">Transmit Options</h3>
+<div class="paragraph">
+<p>Protocols that support sending data can use these options to select the data.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><strong>-D, --data</strong>=<em>DATA</em></dt>
+<dd>
+<p>Use <em>DATA</em> for the body of outgoing messages.</p>
+</dd>
+<dt class="hdlist1"><strong>-F, --file</strong>=<em>FILE</em></dt>
+<dd>
+<p>Use <em>FILE</em> for the body of outgoing messages.</p>
+</dd>
+<dt class="hdlist1"><strong>-i, --interval</strong>=<em>SEC</em></dt>
+<dd>
+<p>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 <em>SEC</em> seconds.</p>
+</dd>
+<dt class="hdlist1"><strong>-d, --delay</strong>=<em>SEC</em></dt>
+<dd>
+<p>Wait <em>SEC</em> seconds before sending the first outgoing message.
+This is useful to let connections establish before sending data, thereby
+avoiding message loss.</p>
+</dd>
+<dt class="hdlist1"><strong>--send-timeout</strong>=<em>SEC</em></dt>
+<dd>
+<p>Give up trying to send a message after <em>SEC</em> seconds.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_tls_options">TLS Options</h3>
+<div class="paragraph">
+<p>These options are only present if TLS is configured; they are ignored
+when using addresses that are not secured with TLS.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><strong>-k, --insecure</strong></dt>
+<dd>
+<p>Skip peer validation.</p>
+</dd>
+<dt class="hdlist1"><strong>-E, --cert</strong>=<em>FILE</em></dt>
+<dd>
+<p>Load own certificate from <em>FILE</em>.</p>
+</dd>
+<dt class="hdlist1"><strong>--key</strong>=<em>FILE</em></dt>
+<dd>
+<p>Load own key from <em>FILE</em>.
+Should be used in conjunction with <strong>--cert</strong>.
+If not specified, and <strong>--cert</strong> is specified, then a single file containing both
+the private key and the associated certificate is assumed.</p>
+</dd>
+<dt class="hdlist1"><strong>--cacert</strong>=<em>FILE</em></dt>
+<dd>
+<p>Load CA certificates from <em>FILE</em>.
+These CAs ("Certificate Authorities") are
+used as trust roots when validating certificates presented by peers.</p>
+</dd>
+</dl>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_zerotier_options">ZeroTier Options</h3>
+<div class="paragraph">
+<p>These options are only present if ZeroTier is configured; they are ignored
+otherwise.</p>
+</div>
+<div class="dlist">
+<dl>
+<dt class="hdlist1"><strong>--zt-home</strong>=<em>DIRECTORY</em></dt>
+<dd>
+<p>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.</p>
+</dd>
+</dl>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_examples">EXAMPLES</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="title">Echo service using request/reply.</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="sh"><span></span>$ <span class="tok-nv">addr</span><span class="tok-o">=</span><span class="tok-s2">&quot;tcp://127.0.0.1:4567&quot;</span>
+$ nngcat --rep --listen<span class="tok-o">=</span><span class="tok-si">${</span><span class="tok-nv">addr</span><span class="tok-si">}</span> --data<span class="tok-o">=</span><span class="tok-s2">&quot;42&quot;</span> --quoted <span class="tok-p">&amp;</span>
+$ nngcat --req --dial<span class="tok-o">=</span><span class="tok-si">${</span><span class="tok-nv">addr</span><span class="tok-si">}</span> --data<span class="tok-o">=</span><span class="tok-s2">&quot;what is the answer?&quot;</span> --quoted
+<span class="tok-s2">&quot;what is the answer?&quot;</span>
+<span class="tok-s2">&quot;42&quot;</span></code></pre>
+</div>
+</div>
+<div class="listingblock">
+<div class="title">Send a chime every hour (3600 seconds).</div>
+<div class="content">
+<pre class="pygments highlight"><code data-lang="sh"><span></span>$ <span class="tok-nv">addr</span><span class="tok-o">=</span>ipc:///grandpa_clock
+$ nngcat --pub --listen<span class="tok-o">=</span><span class="tok-si">${</span><span class="tok-nv">addr</span><span class="tok-si">}</span> --data <span class="tok-s2">&quot;cuckoo&quot;</span> --interval <span class="tok-m">3600</span> <span class="tok-p">&amp;</span>
+$ nngcat --sub --dial<span class="tok-o">=</span><span class="tok-si">${</span><span class="tok-nv">addr</span><span class="tok-si">}</span> --quoted <span class="tok-p">&amp;</span>
+<span class="tok-s2">&quot;cuckoo&quot;</span></code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_see_also">SEE ALSO</h2>
+<div class="sectionbody">
+<div class="paragraph text-left">
+<p><a href="libnng.3.html">libnng(3)</a>,
+<a href="nng.7.html">nng(7)</a>,
+<a href="nng_bus.7.html">nng_bus(7)</a>,
+<a href="nng_pair.7.html">nng_pair(7)</a>,
+<a href="nng_pub.7.html">nng_pub(7)</a>,
+<a href="nng_pull.7.html">nng_pull(7)</a>,
+<a href="nng_push.7.html">nng_push(7)</a>,
+<a href="nng_sub.7.html">nng_sub(7)</a>,
+<a href="nng_rep.7.html">nng_rep(7)</a>,
+<a href="nng_req.7.html">nng_req(7)</a>,
+<a href="nng_respondent.7.html">nng_respondent(7)</a>,
+<a href="nng_surveyor.7.html">nng_surveyor(7)</a></p>
+</div>
+</div>
+</div>
+</div>
+<link rel="stylesheet" href="./pygments-default.css">
+</body>
+</html> \ No newline at end of file
diff --git a/man/v1.2.4/pygments-default.css b/man/v1.2.4/pygments-default.css
new file mode 100644
index 00000000..16d4c78e
--- /dev/null
+++ b/man/v1.2.4/pygments-default.css
@@ -0,0 +1,69 @@
+pre.pygments .hll { background-color: #ffffcc }
+pre.pygments { background: #f8f8f8; }
+pre.pygments .tok-c { color: #408080; font-style: italic } /* Comment */
+pre.pygments .tok-err { border: 1px solid #FF0000 } /* Error */
+pre.pygments .tok-k { color: #008000; font-weight: bold } /* Keyword */
+pre.pygments .tok-o { color: #666666 } /* Operator */
+pre.pygments .tok-ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+pre.pygments .tok-cm { color: #408080; font-style: italic } /* Comment.Multiline */
+pre.pygments .tok-cp { color: #BC7A00 } /* Comment.Preproc */
+pre.pygments .tok-cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
+pre.pygments .tok-c1 { color: #408080; font-style: italic } /* Comment.Single */
+pre.pygments .tok-cs { color: #408080; font-style: italic } /* Comment.Special */
+pre.pygments .tok-gd { color: #A00000 } /* Generic.Deleted */
+pre.pygments .tok-ge { font-style: italic } /* Generic.Emph */
+pre.pygments .tok-gr { color: #FF0000 } /* Generic.Error */
+pre.pygments .tok-gh { color: #000080; font-weight: bold } /* Generic.Heading */
+pre.pygments .tok-gi { color: #00A000 } /* Generic.Inserted */
+pre.pygments .tok-go { color: #888888 } /* Generic.Output */
+pre.pygments .tok-gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+pre.pygments .tok-gs { font-weight: bold } /* Generic.Strong */
+pre.pygments .tok-gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+pre.pygments .tok-gt { color: #0044DD } /* Generic.Traceback */
+pre.pygments .tok-kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+pre.pygments .tok-kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+pre.pygments .tok-kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+pre.pygments .tok-kp { color: #008000 } /* Keyword.Pseudo */
+pre.pygments .tok-kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+pre.pygments .tok-kt { color: #B00040 } /* Keyword.Type */
+pre.pygments .tok-m { color: #666666 } /* Literal.Number */
+pre.pygments .tok-s { color: #BA2121 } /* Literal.String */
+pre.pygments .tok-na { color: #7D9029 } /* Name.Attribute */
+pre.pygments .tok-nb { color: #008000 } /* Name.Builtin */
+pre.pygments .tok-nc { color: #0000FF; font-weight: bold } /* Name.Class */
+pre.pygments .tok-no { color: #880000 } /* Name.Constant */
+pre.pygments .tok-nd { color: #AA22FF } /* Name.Decorator */
+pre.pygments .tok-ni { color: #999999; font-weight: bold } /* Name.Entity */
+pre.pygments .tok-ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+pre.pygments .tok-nf { color: #0000FF } /* Name.Function */
+pre.pygments .tok-nl { color: #A0A000 } /* Name.Label */
+pre.pygments .tok-nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+pre.pygments .tok-nt { color: #008000; font-weight: bold } /* Name.Tag */
+pre.pygments .tok-nv { color: #19177C } /* Name.Variable */
+pre.pygments .tok-ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+pre.pygments .tok-w { color: #bbbbbb } /* Text.Whitespace */
+pre.pygments .tok-mb { color: #666666 } /* Literal.Number.Bin */
+pre.pygments .tok-mf { color: #666666 } /* Literal.Number.Float */
+pre.pygments .tok-mh { color: #666666 } /* Literal.Number.Hex */
+pre.pygments .tok-mi { color: #666666 } /* Literal.Number.Integer */
+pre.pygments .tok-mo { color: #666666 } /* Literal.Number.Oct */
+pre.pygments .tok-sa { color: #BA2121 } /* Literal.String.Affix */
+pre.pygments .tok-sb { color: #BA2121 } /* Literal.String.Backtick */
+pre.pygments .tok-sc { color: #BA2121 } /* Literal.String.Char */
+pre.pygments .tok-dl { color: #BA2121 } /* Literal.String.Delimiter */
+pre.pygments .tok-sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+pre.pygments .tok-s2 { color: #BA2121 } /* Literal.String.Double */
+pre.pygments .tok-se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
+pre.pygments .tok-sh { color: #BA2121 } /* Literal.String.Heredoc */
+pre.pygments .tok-si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
+pre.pygments .tok-sx { color: #008000 } /* Literal.String.Other */
+pre.pygments .tok-sr { color: #BB6688 } /* Literal.String.Regex */
+pre.pygments .tok-s1 { color: #BA2121 } /* Literal.String.Single */
+pre.pygments .tok-ss { color: #19177C } /* Literal.String.Symbol */
+pre.pygments .tok-bp { color: #008000 } /* Name.Builtin.Pseudo */
+pre.pygments .tok-fm { color: #0000FF } /* Name.Function.Magic */
+pre.pygments .tok-vc { color: #19177C } /* Name.Variable.Class */
+pre.pygments .tok-vg { color: #19177C } /* Name.Variable.Global */
+pre.pygments .tok-vi { color: #19177C } /* Name.Variable.Instance */
+pre.pygments .tok-vm { color: #19177C } /* Name.Variable.Magic */
+pre.pygments .tok-il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file