rbczmq 1.7.1 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (437) hide show
  1. checksums.yaml +8 -8
  2. data/.gitmodules +1 -1
  3. data/CHANGELOG.rdoc +4 -0
  4. data/Gemfile.lock +1 -1
  5. data/README.rdoc +5 -4
  6. data/ext/czmq/.gitignore +5 -0
  7. data/ext/czmq/.travis.yml +10 -1
  8. data/ext/czmq/AUTHORS +2 -0
  9. data/ext/czmq/COPYING.LESSER +3 -0
  10. data/ext/czmq/Makefile.am +13 -3
  11. data/ext/czmq/NEWS +132 -0
  12. data/ext/czmq/README.md +1553 -615
  13. data/ext/czmq/README.txt +188 -72
  14. data/ext/czmq/addons/Makefile.am +9 -0
  15. data/ext/czmq/addons/makecert.c +72 -0
  16. data/ext/czmq/builds/mingw32/Makefile.mingw32 +11 -3
  17. data/ext/czmq/builds/msvc/.gitignore +4 -1
  18. data/ext/czmq/builds/msvc/czmq.vcproj +4 -0
  19. data/ext/czmq/builds/msvc/czmq.vcxproj +6 -1
  20. data/ext/czmq/builds/msvc/czmq.vcxproj.filters +4 -1
  21. data/ext/{zeromq/cmake/Modules/zmq_version.cpp → czmq/builds/msvc/platform.h} +10 -9
  22. data/ext/czmq/configure.ac +64 -5
  23. data/ext/czmq/doc/Makefile.am +8 -1
  24. data/ext/czmq/doc/mkmans +17 -0
  25. data/ext/czmq/doc/zauth.txt +191 -0
  26. data/ext/czmq/doc/zbeacon.txt +13 -22
  27. data/ext/czmq/doc/zcert.txt +122 -0
  28. data/ext/czmq/doc/zcertstore.txt +107 -0
  29. data/ext/czmq/doc/zchunk.txt +77 -0
  30. data/ext/czmq/doc/zclock.txt +8 -0
  31. data/ext/czmq/doc/zconfig.txt +9 -63
  32. data/ext/czmq/doc/zctx.txt +26 -7
  33. data/ext/czmq/doc/zdir.txt +83 -0
  34. data/ext/czmq/doc/zfile.txt +130 -35
  35. data/ext/czmq/doc/zframe.txt +6 -39
  36. data/ext/czmq/doc/zhash.txt +55 -10
  37. data/ext/czmq/doc/zlist.txt +2 -4
  38. data/ext/czmq/doc/zloop.txt +7 -1
  39. data/ext/czmq/doc/zmsg.txt +75 -32
  40. data/ext/czmq/doc/zpoller.txt +88 -0
  41. data/ext/czmq/doc/zsocket.txt +50 -1
  42. data/ext/czmq/doc/zsockopt.txt +185 -251
  43. data/ext/czmq/doc/zstr.txt +14 -3
  44. data/ext/czmq/doc/zsys.txt +89 -1
  45. data/ext/czmq/doc/ztree.txt +21 -11
  46. data/ext/czmq/examples/security/LICENSE +18 -0
  47. data/ext/czmq/examples/security/README.txt +9 -0
  48. data/ext/czmq/examples/security/grasslands.c +29 -0
  49. data/ext/czmq/examples/security/hello.c +10 -0
  50. data/ext/czmq/examples/security/ironhouse.c +55 -0
  51. data/ext/czmq/examples/security/ironhouse2.c +103 -0
  52. data/ext/czmq/examples/security/stonehouse.c +51 -0
  53. data/ext/czmq/examples/security/strawhouse.c +44 -0
  54. data/ext/czmq/examples/security/woodhouse.c +40 -0
  55. data/ext/czmq/images/README_1.png +0 -0
  56. data/ext/czmq/images/README_2.png +0 -0
  57. data/ext/czmq/include/czmq.h +10 -4
  58. data/ext/czmq/include/czmq_prelude.h +42 -42
  59. data/ext/czmq/include/zauth.h +97 -0
  60. data/ext/czmq/include/zbeacon.h +0 -5
  61. data/ext/czmq/include/zcert.h +118 -0
  62. data/ext/czmq/include/zcertstore.h +78 -0
  63. data/ext/czmq/include/zchunk.h +87 -0
  64. data/ext/czmq/include/zclock.h +4 -0
  65. data/ext/czmq/include/zconfig.h +21 -12
  66. data/ext/czmq/include/zctx.h +34 -11
  67. data/ext/czmq/include/zdir.h +90 -0
  68. data/ext/czmq/include/zfile.h +104 -25
  69. data/ext/czmq/include/zframe.h +7 -20
  70. data/ext/czmq/include/zhash.h +13 -0
  71. data/ext/czmq/include/zlist.h +0 -4
  72. data/ext/czmq/include/zloop.h +5 -5
  73. data/ext/czmq/include/zmsg.h +59 -29
  74. data/ext/czmq/include/zmutex.h +5 -0
  75. data/ext/czmq/include/zpoller.h +72 -0
  76. data/ext/czmq/include/zsocket.h +12 -15
  77. data/ext/czmq/include/zsockopt.h +124 -121
  78. data/ext/czmq/include/zstr.h +12 -9
  79. data/ext/czmq/include/zsys.h +50 -2
  80. data/ext/czmq/mkdoc +1 -1
  81. data/ext/czmq/model/sockopts.xml +101 -21
  82. data/ext/czmq/scripts/sockopts.gsl +95 -41
  83. data/ext/czmq/src/Makefile.am +13 -0
  84. data/ext/czmq/src/czmq_selftest.c +16 -10
  85. data/ext/czmq/src/selftest +2 -2
  86. data/ext/czmq/src/zauth.c +714 -0
  87. data/ext/czmq/src/zbeacon.c +27 -35
  88. data/ext/czmq/src/zcert.c +463 -0
  89. data/ext/czmq/src/zcertstore.c +265 -0
  90. data/ext/czmq/src/zchunk.c +207 -0
  91. data/ext/czmq/src/zclock.c +18 -0
  92. data/ext/czmq/src/zconfig.c +116 -99
  93. data/ext/czmq/src/zctx.c +103 -18
  94. data/ext/czmq/src/zdir.c +409 -0
  95. data/ext/czmq/src/zfile.c +421 -130
  96. data/ext/czmq/src/zframe.c +28 -127
  97. data/ext/czmq/src/zhash.c +255 -139
  98. data/ext/czmq/src/zlist.c +2 -8
  99. data/ext/czmq/src/zloop.c +40 -13
  100. data/ext/czmq/src/zmsg.c +109 -141
  101. data/ext/czmq/src/zmutex.c +27 -1
  102. data/ext/czmq/src/zpoller.c +218 -0
  103. data/ext/czmq/src/zsocket.c +53 -66
  104. data/ext/czmq/src/zsockopt.c +2337 -682
  105. data/ext/czmq/src/zstr.c +48 -118
  106. data/ext/czmq/src/zsys.c +270 -3
  107. data/ext/czmq/src/zthread.c +2 -2
  108. data/ext/czmq/src/ztree.c +179 -180
  109. data/ext/rbczmq/beacon.c +1 -1
  110. data/ext/rbczmq/context.c +12 -3
  111. data/ext/rbczmq/context.h +7 -0
  112. data/ext/rbczmq/extconf.rb +13 -4
  113. data/ext/rbczmq/pollitem.c +1 -1
  114. data/ext/rbczmq/socket.c +34 -24
  115. data/ext/rbczmq/socket.h +3 -2
  116. data/ext/zeromq/AUTHORS +17 -3
  117. data/ext/zeromq/CMakeLists.txt +742 -339
  118. data/ext/zeromq/COPYING.LESSER +2 -0
  119. data/ext/zeromq/Makefile.am +3 -3
  120. data/ext/zeromq/NEWS +130 -1
  121. data/ext/zeromq/{README → README.md} +8 -9
  122. data/ext/zeromq/builds/cmake/Modules/FindAsciiDoc.cmake +24 -0
  123. data/ext/zeromq/builds/cmake/Modules/TestZMQVersion.cmake +18 -0
  124. data/ext/zeromq/builds/cmake/Modules/ZMQSourceRunChecks.cmake +129 -0
  125. data/ext/zeromq/{cmake → builds/cmake}/NSIS.template32.in +1 -1
  126. data/ext/zeromq/{cmake → builds/cmake}/NSIS.template64.in +1 -1
  127. data/ext/zeromq/builds/cmake/platform.hpp.in +88 -0
  128. data/ext/zeromq/builds/mingw32/Makefile.mingw32 +47 -0
  129. data/ext/zeromq/{src/i_msg_sink.hpp → builds/mingw32/platform.hpp} +10 -21
  130. data/ext/zeromq/builds/msvc/Makefile.am +5 -2
  131. data/ext/zeromq/builds/msvc/c_local_lat/c_local_lat.vcxproj +1 -1
  132. data/ext/zeromq/builds/msvc/c_local_lat/c_local_lat11.vcxproj +91 -0
  133. data/ext/zeromq/builds/msvc/c_local_thr/c_local_thr.vcproj +2 -0
  134. data/ext/zeromq/builds/msvc/c_local_thr/c_local_thr.vcxproj +21 -1
  135. data/ext/zeromq/builds/msvc/c_local_thr/c_local_thr11.vcxproj +111 -0
  136. data/ext/zeromq/builds/msvc/c_remote_lat/c_remote_lat.vcxproj +1 -1
  137. data/ext/zeromq/builds/msvc/c_remote_lat/c_remote_lat11.vcxproj +91 -0
  138. data/ext/zeromq/builds/msvc/c_remote_thr/c_remote_thr.vcproj +2 -0
  139. data/ext/zeromq/builds/msvc/c_remote_thr/c_remote_thr.vcxproj +21 -1
  140. data/ext/zeromq/builds/msvc/c_remote_thr/c_remote_thr11.vcxproj +111 -0
  141. data/ext/zeromq/builds/msvc/errno.cpp +1 -1
  142. data/ext/zeromq/builds/msvc/errno.hpp +1 -1
  143. data/ext/zeromq/builds/msvc/inproc_lat/inproc_lat.vcproj +176 -174
  144. data/ext/zeromq/builds/msvc/inproc_lat/inproc_lat.vcxproj +21 -1
  145. data/ext/zeromq/builds/msvc/inproc_lat/inproc_lat11.vcxproj +110 -0
  146. data/ext/zeromq/builds/msvc/inproc_thr/inproc_thr.vcproj +176 -174
  147. data/ext/zeromq/builds/msvc/inproc_thr/inproc_thr.vcxproj +21 -1
  148. data/ext/zeromq/builds/msvc/inproc_thr/inproc_thr11.vcxproj +110 -0
  149. data/ext/zeromq/builds/msvc/libzmq/libzmq.vcproj +997 -804
  150. data/ext/zeromq/builds/msvc/libzmq/libzmq.vcxproj +78 -2
  151. data/ext/zeromq/builds/msvc/libzmq/libzmq.vcxproj.filters +42 -6
  152. data/ext/zeromq/builds/msvc/libzmq/libzmq11.vcxproj +362 -0
  153. data/ext/zeromq/builds/msvc/msvc.sln +6 -0
  154. data/ext/zeromq/builds/msvc/msvc10.sln +36 -2
  155. data/ext/zeromq/builds/msvc/msvc11.sln +150 -0
  156. data/ext/zeromq/builds/msvc/properties/Static.props +15 -0
  157. data/ext/zeromq/builds/msvc/properties/ZeroMQ.props +0 -1
  158. data/ext/zeromq/builds/msvc/properties/ZeroMQ_Static.props +23 -0
  159. data/ext/zeromq/builds/redhat/zeromq.spec.in +2 -1
  160. data/ext/zeromq/{configure.in → configure.ac} +74 -15
  161. data/ext/zeromq/doc/Makefile.am +6 -4
  162. data/ext/zeromq/doc/zmq.txt +30 -3
  163. data/ext/zeromq/doc/zmq_bind.txt +2 -2
  164. data/ext/zeromq/doc/zmq_close.txt +2 -2
  165. data/ext/zeromq/doc/zmq_connect.txt +9 -7
  166. data/ext/zeromq/doc/zmq_ctx_destroy.txt +4 -3
  167. data/ext/zeromq/doc/zmq_ctx_get.txt +8 -3
  168. data/ext/zeromq/doc/zmq_ctx_new.txt +3 -2
  169. data/ext/zeromq/doc/zmq_ctx_set.txt +13 -1
  170. data/ext/zeromq/doc/zmq_ctx_shutdown.txt +52 -0
  171. data/ext/zeromq/doc/zmq_ctx_term.txt +67 -0
  172. data/ext/zeromq/doc/zmq_curve.txt +92 -0
  173. data/ext/zeromq/doc/zmq_curve_keypair.txt +56 -0
  174. data/ext/zeromq/doc/zmq_disconnect.txt +2 -2
  175. data/ext/zeromq/doc/zmq_epgm.txt +5 -4
  176. data/ext/zeromq/doc/zmq_errno.txt +2 -2
  177. data/ext/zeromq/doc/zmq_getsockopt.txt +149 -24
  178. data/ext/zeromq/doc/zmq_init.txt +2 -2
  179. data/ext/zeromq/doc/zmq_inproc.txt +2 -2
  180. data/ext/zeromq/doc/zmq_ipc.txt +10 -5
  181. data/ext/zeromq/doc/zmq_msg_close.txt +4 -3
  182. data/ext/zeromq/doc/zmq_msg_copy.txt +2 -2
  183. data/ext/zeromq/doc/zmq_msg_data.txt +2 -2
  184. data/ext/zeromq/doc/zmq_msg_get.txt +3 -3
  185. data/ext/zeromq/doc/zmq_msg_init.txt +2 -2
  186. data/ext/zeromq/doc/zmq_msg_init_data.txt +2 -2
  187. data/ext/zeromq/doc/zmq_msg_init_size.txt +2 -2
  188. data/ext/zeromq/doc/zmq_msg_more.txt +6 -4
  189. data/ext/zeromq/doc/zmq_msg_move.txt +2 -2
  190. data/ext/zeromq/doc/zmq_msg_recv.txt +3 -4
  191. data/ext/zeromq/doc/zmq_msg_send.txt +10 -7
  192. data/ext/zeromq/doc/zmq_msg_set.txt +2 -1
  193. data/ext/zeromq/doc/zmq_msg_size.txt +2 -2
  194. data/ext/zeromq/doc/zmq_null.txt +27 -0
  195. data/ext/zeromq/doc/zmq_pgm.txt +5 -4
  196. data/ext/zeromq/doc/zmq_plain.txt +37 -0
  197. data/ext/zeromq/doc/zmq_poll.txt +2 -6
  198. data/ext/zeromq/doc/zmq_proxy.txt +2 -1
  199. data/ext/zeromq/doc/zmq_recv.txt +2 -5
  200. data/ext/zeromq/doc/zmq_recvmsg.txt +3 -5
  201. data/ext/zeromq/doc/zmq_send.txt +9 -7
  202. data/ext/zeromq/doc/zmq_send_const.txt +103 -0
  203. data/ext/zeromq/doc/zmq_sendmsg.txt +8 -8
  204. data/ext/zeromq/doc/zmq_setsockopt.txt +291 -37
  205. data/ext/zeromq/doc/zmq_socket.txt +92 -21
  206. data/ext/zeromq/doc/zmq_socket_monitor.txt +102 -131
  207. data/ext/zeromq/doc/zmq_strerror.txt +3 -2
  208. data/ext/zeromq/doc/zmq_tcp.txt +4 -2
  209. data/ext/zeromq/doc/zmq_term.txt +3 -3
  210. data/ext/zeromq/doc/zmq_unbind.txt +2 -2
  211. data/ext/zeromq/doc/zmq_version.txt +3 -2
  212. data/ext/zeromq/doc/zmq_z85_decode.txt +50 -0
  213. data/ext/zeromq/doc/zmq_z85_encode.txt +57 -0
  214. data/ext/zeromq/foreign/openpgm/libpgm-5.2.122~dfsg.tar.gz +0 -0
  215. data/ext/zeromq/include/zmq.h +179 -136
  216. data/ext/zeromq/include/zmq_utils.h +44 -3
  217. data/ext/zeromq/perf/inproc_lat.cpp +2 -4
  218. data/ext/zeromq/perf/inproc_thr.cpp +1 -1
  219. data/ext/zeromq/perf/local_lat.cpp +1 -3
  220. data/ext/zeromq/perf/local_thr.cpp +1 -3
  221. data/ext/zeromq/perf/remote_lat.cpp +1 -3
  222. data/ext/zeromq/perf/remote_thr.cpp +1 -8
  223. data/ext/zeromq/src/Makefile.am +26 -7
  224. data/ext/zeromq/src/address.cpp +7 -8
  225. data/ext/zeromq/src/address.hpp +1 -2
  226. data/ext/zeromq/src/array.hpp +1 -3
  227. data/ext/zeromq/src/atomic_counter.hpp +11 -3
  228. data/ext/zeromq/src/atomic_ptr.hpp +9 -3
  229. data/ext/zeromq/src/blob.hpp +2 -2
  230. data/ext/zeromq/src/clock.cpp +3 -4
  231. data/ext/zeromq/src/clock.hpp +1 -2
  232. data/ext/zeromq/src/command.hpp +2 -3
  233. data/ext/zeromq/src/config.hpp +1 -3
  234. data/ext/zeromq/src/ctx.cpp +154 -15
  235. data/ext/zeromq/src/ctx.hpp +34 -3
  236. data/ext/zeromq/src/curve_client.cpp +410 -0
  237. data/ext/zeromq/src/curve_client.hpp +109 -0
  238. data/ext/zeromq/src/curve_server.cpp +629 -0
  239. data/ext/zeromq/src/curve_server.hpp +120 -0
  240. data/ext/zeromq/src/dbuffer.hpp +134 -0
  241. data/ext/zeromq/src/dealer.cpp +52 -60
  242. data/ext/zeromq/src/dealer.hpp +12 -26
  243. data/ext/zeromq/src/decoder.hpp +27 -102
  244. data/ext/zeromq/src/devpoll.cpp +1 -3
  245. data/ext/zeromq/src/devpoll.hpp +1 -3
  246. data/ext/zeromq/src/dist.cpp +17 -15
  247. data/ext/zeromq/src/dist.hpp +5 -6
  248. data/ext/zeromq/src/encoder.hpp +32 -52
  249. data/ext/zeromq/src/epoll.cpp +1 -3
  250. data/ext/zeromq/src/epoll.hpp +1 -3
  251. data/ext/zeromq/src/err.cpp +2 -4
  252. data/ext/zeromq/src/err.hpp +7 -4
  253. data/ext/zeromq/src/fd.hpp +1 -2
  254. data/ext/zeromq/src/fq.cpp +2 -5
  255. data/ext/zeromq/src/fq.hpp +2 -4
  256. data/ext/zeromq/src/i_decoder.hpp +11 -9
  257. data/ext/zeromq/src/i_encoder.hpp +7 -11
  258. data/ext/zeromq/src/i_engine.hpp +3 -3
  259. data/ext/zeromq/src/i_poll_events.hpp +1 -3
  260. data/ext/zeromq/src/io_object.cpp +1 -3
  261. data/ext/zeromq/src/io_object.hpp +1 -3
  262. data/ext/zeromq/src/io_thread.cpp +1 -3
  263. data/ext/zeromq/src/io_thread.hpp +1 -3
  264. data/ext/zeromq/src/ip.cpp +46 -5
  265. data/ext/zeromq/src/ip.hpp +7 -4
  266. data/ext/zeromq/src/ipc_address.cpp +13 -2
  267. data/ext/zeromq/src/ipc_address.hpp +1 -2
  268. data/ext/zeromq/src/ipc_connecter.cpp +3 -3
  269. data/ext/zeromq/src/ipc_connecter.hpp +1 -2
  270. data/ext/zeromq/src/ipc_listener.cpp +15 -10
  271. data/ext/zeromq/src/ipc_listener.hpp +1 -2
  272. data/ext/zeromq/src/kqueue.cpp +11 -3
  273. data/ext/zeromq/src/kqueue.hpp +7 -3
  274. data/ext/zeromq/src/lb.cpp +13 -11
  275. data/ext/zeromq/src/lb.hpp +10 -5
  276. data/ext/zeromq/src/libzmq.pc.cmake.in +10 -0
  277. data/ext/zeromq/src/likely.hpp +1 -2
  278. data/ext/zeromq/src/mailbox.cpp +1 -4
  279. data/ext/zeromq/src/mailbox.hpp +8 -3
  280. data/ext/zeromq/src/mechanism.cpp +163 -0
  281. data/ext/zeromq/src/mechanism.hpp +101 -0
  282. data/ext/zeromq/src/msg.cpp +38 -18
  283. data/ext/zeromq/src/msg.hpp +19 -7
  284. data/ext/zeromq/src/mtrie.cpp +16 -14
  285. data/ext/zeromq/src/mtrie.hpp +1 -3
  286. data/ext/zeromq/src/mutex.hpp +42 -3
  287. data/ext/zeromq/src/null_mechanism.cpp +282 -0
  288. data/ext/zeromq/src/null_mechanism.hpp +65 -0
  289. data/ext/zeromq/src/object.cpp +29 -3
  290. data/ext/zeromq/src/object.hpp +8 -5
  291. data/ext/zeromq/src/options.cpp +557 -485
  292. data/ext/zeromq/src/options.hpp +38 -24
  293. data/ext/zeromq/src/own.cpp +1 -2
  294. data/ext/zeromq/src/own.hpp +1 -2
  295. data/ext/zeromq/src/pair.cpp +8 -25
  296. data/ext/zeromq/src/pair.hpp +5 -22
  297. data/ext/zeromq/src/pgm_receiver.cpp +80 -67
  298. data/ext/zeromq/src/pgm_receiver.hpp +11 -10
  299. data/ext/zeromq/src/pgm_sender.cpp +37 -16
  300. data/ext/zeromq/src/pgm_sender.hpp +12 -6
  301. data/ext/zeromq/src/pgm_socket.cpp +8 -8
  302. data/ext/zeromq/src/pgm_socket.hpp +1 -4
  303. data/ext/zeromq/src/pipe.cpp +110 -72
  304. data/ext/zeromq/src/pipe.hpp +36 -27
  305. data/ext/zeromq/src/plain_mechanism.cpp +482 -0
  306. data/ext/zeromq/src/plain_mechanism.hpp +88 -0
  307. data/ext/zeromq/src/poll.cpp +1 -3
  308. data/ext/zeromq/src/poll.hpp +1 -3
  309. data/ext/zeromq/src/poller.hpp +1 -3
  310. data/ext/zeromq/src/poller_base.cpp +3 -3
  311. data/ext/zeromq/src/poller_base.hpp +1 -2
  312. data/ext/zeromq/src/precompiled.cpp +1 -2
  313. data/ext/zeromq/src/precompiled.hpp +1 -2
  314. data/ext/zeromq/src/proxy.cpp +1 -2
  315. data/ext/zeromq/src/proxy.hpp +1 -2
  316. data/ext/zeromq/src/pub.cpp +2 -16
  317. data/ext/zeromq/src/pub.hpp +2 -19
  318. data/ext/zeromq/src/pull.cpp +7 -24
  319. data/ext/zeromq/src/pull.hpp +4 -21
  320. data/ext/zeromq/src/push.cpp +8 -22
  321. data/ext/zeromq/src/push.hpp +4 -21
  322. data/ext/zeromq/src/random.cpp +1 -2
  323. data/ext/zeromq/src/random.hpp +1 -2
  324. data/ext/zeromq/src/raw_decoder.cpp +63 -0
  325. data/ext/zeromq/src/raw_decoder.hpp +66 -0
  326. data/ext/zeromq/src/raw_encoder.cpp +40 -0
  327. data/ext/zeromq/src/raw_encoder.hpp +60 -0
  328. data/ext/zeromq/src/reaper.cpp +12 -2
  329. data/ext/zeromq/src/reaper.hpp +6 -2
  330. data/ext/zeromq/src/rep.cpp +7 -21
  331. data/ext/zeromq/src/rep.hpp +3 -20
  332. data/ext/zeromq/src/req.cpp +132 -38
  333. data/ext/zeromq/src/req.hpp +27 -8
  334. data/ext/zeromq/src/router.cpp +109 -65
  335. data/ext/zeromq/src/router.hpp +9 -23
  336. data/ext/zeromq/src/select.cpp +1 -3
  337. data/ext/zeromq/src/select.hpp +1 -3
  338. data/ext/zeromq/src/session_base.cpp +164 -118
  339. data/ext/zeromq/src/session_base.hpp +29 -22
  340. data/ext/zeromq/src/signaler.cpp +127 -19
  341. data/ext/zeromq/src/signaler.hpp +20 -3
  342. data/ext/zeromq/src/socket_base.cpp +167 -134
  343. data/ext/zeromq/src/socket_base.hpp +18 -20
  344. data/ext/zeromq/src/stdint.hpp +1 -2
  345. data/ext/zeromq/src/stream.cpp +257 -0
  346. data/ext/zeromq/src/stream.hpp +97 -0
  347. data/ext/zeromq/src/stream_engine.cpp +405 -157
  348. data/ext/zeromq/src/stream_engine.hpp +72 -23
  349. data/ext/zeromq/src/sub.cpp +5 -18
  350. data/ext/zeromq/src/sub.hpp +2 -19
  351. data/ext/zeromq/src/tcp.cpp +23 -3
  352. data/ext/zeromq/src/tcp.hpp +7 -3
  353. data/ext/zeromq/src/tcp_address.cpp +35 -46
  354. data/ext/zeromq/src/tcp_address.hpp +7 -12
  355. data/ext/zeromq/src/tcp_connecter.cpp +10 -5
  356. data/ext/zeromq/src/tcp_connecter.hpp +1 -3
  357. data/ext/zeromq/src/tcp_listener.cpp +19 -8
  358. data/ext/zeromq/src/tcp_listener.hpp +1 -3
  359. data/ext/zeromq/src/thread.cpp +2 -4
  360. data/ext/zeromq/src/thread.hpp +1 -3
  361. data/ext/zeromq/src/trie.cpp +122 -125
  362. data/ext/zeromq/src/trie.hpp +1 -4
  363. data/ext/zeromq/src/v1_decoder.cpp +77 -91
  364. data/ext/zeromq/src/v1_decoder.hpp +10 -21
  365. data/ext/zeromq/src/v1_encoder.cpp +24 -62
  366. data/ext/zeromq/src/v1_encoder.hpp +7 -18
  367. data/ext/zeromq/src/v2_decoder.cpp +142 -0
  368. data/ext/zeromq/src/v2_decoder.hpp +57 -0
  369. data/ext/zeromq/src/v2_encoder.cpp +67 -0
  370. data/ext/zeromq/src/{i_msg_source.hpp → v2_encoder.hpp} +20 -15
  371. data/ext/zeromq/src/{v1_protocol.hpp → v2_protocol.hpp} +7 -11
  372. data/ext/zeromq/src/windows.hpp +2 -4
  373. data/ext/zeromq/src/wire.hpp +5 -6
  374. data/ext/zeromq/src/xpub.cpp +37 -46
  375. data/ext/zeromq/src/xpub.hpp +7 -23
  376. data/ext/zeromq/src/xsub.cpp +26 -40
  377. data/ext/zeromq/src/xsub.hpp +5 -21
  378. data/ext/zeromq/src/ypipe.hpp +3 -4
  379. data/ext/zeromq/src/ypipe_base.hpp +44 -0
  380. data/ext/zeromq/src/ypipe_conflate.hpp +127 -0
  381. data/ext/zeromq/src/yqueue.hpp +3 -7
  382. data/ext/zeromq/src/zmq.cpp +76 -96
  383. data/ext/zeromq/src/zmq_utils.cpp +146 -8
  384. data/ext/zeromq/tests/Makefile.am +56 -8
  385. data/ext/zeromq/tests/test_abstract_ipc.cpp +57 -0
  386. data/ext/zeromq/tests/test_conflate.cpp +75 -0
  387. data/ext/zeromq/tests/test_connect_resolve.cpp +14 -15
  388. data/ext/zeromq/tests/test_ctx_destroy.cpp +90 -0
  389. data/ext/zeromq/tests/test_ctx_options.cpp +52 -0
  390. data/ext/zeromq/tests/test_disconnect_inproc.cpp +35 -30
  391. data/ext/zeromq/tests/test_fork.cpp +81 -0
  392. data/ext/zeromq/tests/test_hwm.cpp +251 -35
  393. data/ext/zeromq/tests/test_immediate.cpp +229 -0
  394. data/ext/zeromq/tests/test_inproc_connect.cpp +339 -0
  395. data/ext/zeromq/tests/test_invalid_rep.cpp +9 -13
  396. data/ext/zeromq/tests/test_iov.cpp +106 -0
  397. data/ext/zeromq/tests/test_issue_566.cpp +85 -0
  398. data/ext/zeromq/tests/test_last_endpoint.cpp +14 -18
  399. data/ext/zeromq/tests/test_linger.cpp +93 -0
  400. data/ext/zeromq/tests/test_monitor.cpp +112 -129
  401. data/ext/zeromq/tests/test_msg_flags.cpp +17 -16
  402. data/ext/zeromq/tests/test_pair_inproc.cpp +25 -7
  403. data/ext/zeromq/tests/test_pair_ipc.cpp +4 -7
  404. data/ext/zeromq/tests/test_pair_tcp.cpp +4 -8
  405. data/ext/zeromq/tests/test_probe_router.cpp +72 -0
  406. data/ext/zeromq/tests/test_req_correlate.cpp +177 -0
  407. data/ext/zeromq/tests/test_req_relaxed.cpp +116 -0
  408. data/ext/zeromq/tests/test_reqrep_device.cpp +9 -17
  409. data/ext/zeromq/tests/test_reqrep_inproc.cpp +4 -7
  410. data/ext/zeromq/tests/test_reqrep_ipc.cpp +4 -7
  411. data/ext/zeromq/tests/test_reqrep_tcp.cpp +4 -8
  412. data/ext/zeromq/tests/test_router_mandatory.cpp +41 -22
  413. data/ext/zeromq/tests/test_security_curve.cpp +212 -0
  414. data/ext/zeromq/tests/test_security_null.cpp +148 -0
  415. data/ext/zeromq/tests/test_security_plain.cpp +150 -0
  416. data/ext/zeromq/tests/test_shutdown_stress.cpp +10 -23
  417. data/ext/zeromq/tests/test_spec_dealer.cpp +254 -0
  418. data/ext/zeromq/tests/test_spec_pushpull.cpp +293 -0
  419. data/ext/zeromq/tests/test_spec_rep.cpp +155 -0
  420. data/ext/zeromq/tests/test_spec_req.cpp +253 -0
  421. data/ext/zeromq/tests/test_spec_router.cpp +204 -0
  422. data/ext/zeromq/tests/test_stream.cpp +228 -0
  423. data/ext/zeromq/tests/test_sub_forward.cpp +14 -22
  424. data/ext/zeromq/tests/test_system.cpp +82 -0
  425. data/ext/zeromq/tests/test_term_endpoint.cpp +17 -31
  426. data/ext/zeromq/tests/test_timeo.cpp +34 -78
  427. data/ext/zeromq/tests/testutil.hpp +211 -26
  428. data/ext/zeromq/tools/Makefile.am +9 -0
  429. data/ext/zeromq/tools/curve_keygen.c +58 -0
  430. data/lib/zmq/version.rb +1 -1
  431. data/test/test_socket.rb +4 -3
  432. metadata +114 -15
  433. data/ext/zeromq/cmake/Modules/TestZMQVersion.cmake +0 -35
  434. data/ext/zeromq/foreign/openpgm/libpgm-5.1.118~dfsg.tar.gz +0 -0
  435. data/ext/zeromq/src/decoder.cpp +0 -166
  436. data/ext/zeromq/src/encoder.cpp +0 -102
  437. data/ext/zeromq/tests/test_connect_delay.cpp +0 -260
@@ -63,5 +63,5 @@ linkzmq:zmq[7]
63
63
 
64
64
  AUTHORS
65
65
  -------
66
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com>,
67
- Martin Lucina <mato@kotelna.sk> and Ian Barber <ian.barber@gmail.com>
66
+ This page was written by the 0MQ community. To make a change please
67
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -54,7 +54,7 @@ and a port number.
54
54
  An 'interface' may be specified by either of the following:
55
55
 
56
56
  * The interface name as defined by the operating system.
57
- * The primary IPv4 address assigned to the interface, in it's numeric
57
+ * The primary IPv4 address assigned to the interface, in its numeric
58
58
  representation.
59
59
 
60
60
  NOTE: Interface names are not standardised in any way and should be assumed to
@@ -63,7 +63,7 @@ names exist, thus only the primary IPv4 address may be used to specify an
63
63
  'interface'. The 'interface' part can be omitted, in that case the default one
64
64
  will be selected.
65
65
 
66
- A 'multicast address' is specified by an IPv4 multicast address in it's numeric
66
+ A 'multicast address' is specified by an IPv4 multicast address in its numeric
67
67
  representation.
68
68
 
69
69
 
@@ -156,7 +156,8 @@ linkzmq:zmq_ipc[7]
156
156
  linkzmq:zmq_inproc[7]
157
157
  linkzmq:zmq[7]
158
158
 
159
+
159
160
  AUTHORS
160
161
  -------
161
- This 0MQ manual page was written by Pieter Hintjens <ph@imatix.com>,
162
- Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>.
162
+ This page was written by the 0MQ community. To make a change please
163
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -46,5 +46,5 @@ linkzmq:zmq[7]
46
46
 
47
47
  AUTHORS
48
48
  -------
49
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
50
- Martin Lucina <mato@kotelna.sk>.
49
+ This page was written by the 0MQ community. To make a change please
50
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -60,7 +60,8 @@ ZMQ_SNDHWM: Retrieves high water mark for outbound messages
60
60
  The 'ZMQ_SNDHWM' option shall return the high water mark for outbound messages
61
61
  on the specified 'socket'. The high water mark is a hard limit on the maximum
62
62
  number of outstanding messages 0MQ shall queue in memory for any single peer
63
- that the specified 'socket' is communicating with.
63
+ that the specified 'socket' is communicating with. A value of zero means no
64
+ limit.
64
65
 
65
66
  If this limit has been reached the socket shall enter an exceptional state and
66
67
  depending on the socket type, 0MQ shall take appropriate action such as
@@ -80,7 +81,8 @@ ZMQ_RCVHWM: Retrieve high water mark for inbound messages
80
81
  The 'ZMQ_RCVHWM' option shall return the high water mark for inbound messages on
81
82
  the specified 'socket'. The high water mark is a hard limit on the maximum
82
83
  number of outstanding messages 0MQ shall queue in memory for any single peer
83
- that the specified 'socket' is communicating with.
84
+ that the specified 'socket' is communicating with. A value of zero means no
85
+ limit.
84
86
 
85
87
  If this limit has been reached the socket shall enter an exceptional state and
86
88
  depending on the socket type, 0MQ shall take appropriate action such as
@@ -238,11 +240,11 @@ Applicable socket types:: all, only for connection-oriented transports
238
240
 
239
241
  ZMQ_RECONNECT_IVL_MAX: Retrieve maximum reconnection interval
240
242
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
241
- The 'ZMQ_RECONNECT_IVL_MAX' option shall retrieve the maximum reconnection
242
- interval for the specified 'socket'. This is the maximum period 0MQ shall wait
243
- between attempts to reconnect. On each reconnect attempt, the previous interval
244
- shall be doubled untill ZMQ_RECONNECT_IVL_MAX is reached. This allows for
245
- exponential backoff strategy. Default value means no exponential backoff is
243
+ The 'ZMQ_RECONNECT_IVL_MAX' option shall retrieve the maximum reconnection
244
+ interval for the specified 'socket'. This is the maximum period 0MQ shall wait
245
+ between attempts to reconnect. On each reconnect attempt, the previous interval
246
+ shall be doubled untill ZMQ_RECONNECT_IVL_MAX is reached. This allows for
247
+ exponential backoff strategy. Default value means no exponential backoff is
246
248
  performed and reconnect interval calculations are only based on
247
249
  ZMQ_RECONNECT_IVL.
248
250
 
@@ -324,12 +326,24 @@ Default value:: -1 (infinite)
324
326
  Applicable socket types:: all
325
327
 
326
328
 
329
+ ZMQ_IPV6: Retrieve IPv6 socket status
330
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
331
+ Retrieve the IPv6 option for the socket. A value of `1` means IPv6 is
332
+ enabled on the socket, while `0` means the socket will use only IPv4.
333
+ When IPv6 is enabled the socket will connect to, or accept connections
334
+ from, both IPv4 and IPv6 hosts.
335
+
336
+ [horizontal]
337
+ Option value type:: int
338
+ Option value unit:: boolean
339
+ Default value:: 0 (false)
340
+ Applicable socket types:: all, when using TCP transports.
341
+
342
+
327
343
  ZMQ_IPV4ONLY: Retrieve IPv4-only socket override status
328
344
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
329
- Retrieve the underlying native socket type. A value of `1` will use IPv4
330
- sockets, while the value of `0` will use IPv6 sockets. An IPv6 socket
331
- lets applications connect to and accept connections from both IPv4 and IPv6
332
- hosts.
345
+ Retrieve the IPv4-only option for the socket. This option is deprecated.
346
+ Please use the ZMQ_IPV6 option.
333
347
 
334
348
  [horizontal]
335
349
  Option value type:: int
@@ -338,8 +352,8 @@ Default value:: 1 (true)
338
352
  Applicable socket types:: all, when using TCP transports.
339
353
 
340
354
 
341
- ZMQ_DELAY_ATTACH_ON_CONNECT: Retrieve attach-on-connect value
342
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
355
+ ZMQ_IMMEDIATE: Retrieve attach-on-connect value
356
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
343
357
  Retrieve the state of the attach on connect value. If set to `1`, will delay the
344
358
  attachment of a pipe on connect until the underlying connection has completed.
345
359
  This will cause the socket to block if there are no other connections, but will
@@ -365,11 +379,11 @@ necessarily indicate that messages are available to be read from, or can be
365
379
  written to, the underlying socket; applications must retrieve the actual event
366
380
  state with a subsequent retrieval of the 'ZMQ_EVENTS' option.
367
381
 
368
- NOTE: The returned file descriptor is also used internally by the 'zmq_send'
369
- and 'zmq_recv' functions. As the descriptor is edge triggered, applications
370
- must update the state of 'ZMQ_EVENTS' after each invocation of 'zmq_send'
371
- or 'zmq_recv'.To be more explicit: after calling 'zmq_send' the socket may
372
- become readable (and vice versa) without triggering a read event on the
382
+ NOTE: The returned file descriptor is also used internally by the 'zmq_send'
383
+ and 'zmq_recv' functions. As the descriptor is edge triggered, applications
384
+ must update the state of 'ZMQ_EVENTS' after each invocation of 'zmq_send'
385
+ or 'zmq_recv'.To be more explicit: after calling 'zmq_send' the socket may
386
+ become readable (and vice versa) without triggering a read event on the
373
387
  file descriptor.
374
388
 
375
389
  CAUTION: The returned file descriptor is intended for use with a 'poll' or
@@ -411,13 +425,13 @@ Applicable socket types:: all
411
425
 
412
426
  ZMQ_LAST_ENDPOINT: Retrieve the last endpoint set
413
427
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
414
- The 'ZMQ_LAST_ENDPOINT' option shall retrieve the last endpoint bound for
428
+ The 'ZMQ_LAST_ENDPOINT' option shall retrieve the last endpoint bound for
415
429
  TCP and IPC transports. The returned value will be a string in the form of
416
430
  a ZMQ DSN. Note that if the TCP host is INADDR_ANY, indicated by a *, then
417
431
  the returned address will be 0.0.0.0 (for IPv4).
418
432
 
419
433
  [horizontal]
420
- Option value type:: character string
434
+ Option value type:: NULL-terminated character string
421
435
  Option value unit:: N/A
422
436
  Default value:: NULL
423
437
  Applicable socket types:: all, when binding TCP or IPC transports
@@ -437,8 +451,9 @@ Applicable socket types:: all, when using TCP transports.
437
451
 
438
452
  ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT(or TCP_KEEPALIVE on some OS)
439
453
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
440
- Override 'TCP_KEEPCNT'(or 'TCP_KEEPALIVE' on some OS) socket option(where supported by OS).
441
- The default value of `-1` means to skip any overrides and leave it to OS default.
454
+ Override 'TCP_KEEPCNT'(or 'TCP_KEEPALIVE' on some OS) socket option (where
455
+ supported by OS). The default value of `-1` means to skip any overrides and
456
+ leave it to OS default.
442
457
 
443
458
  [horizontal]
444
459
  Option value type:: int
@@ -470,6 +485,116 @@ Option value unit:: -1,>0
470
485
  Default value:: -1 (leave to OS default)
471
486
  Applicable socket types:: all, when using TCP transports.
472
487
 
488
+
489
+ ZMQ_MECHANISM: Retrieve current security mechanism
490
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
491
+ The 'ZMQ_MECHANISM' option shall retrieve the current security mechanism
492
+ for the socket.
493
+
494
+ [horizontal]
495
+ Option value type:: int
496
+ Option value unit:: ZMQ_NULL, ZMQ_PLAIN, or ZMQ_CURVE
497
+ Default value:: ZMQ_NULL
498
+ Applicable socket types:: all, when using TCP or IPC transports
499
+
500
+
501
+ ZMQ_PLAIN_SERVER: Retrieve current PLAIN server role
502
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
503
+ Returns the 'ZMQ_PLAIN_SERVER' option, if any, previously set on the socket.
504
+
505
+ [horizontal]
506
+ Option value type:: int
507
+ Option value unit:: 0, 1
508
+ Default value:: int
509
+ Applicable socket types:: all, when using TCP or IPC transports
510
+
511
+
512
+ ZMQ_PLAIN_USERNAME: Retrieve current PLAIN username
513
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
514
+ The 'ZMQ_PLAIN_USERNAME' option shall retrieve the last username set for
515
+ the PLAIN security mechanism. The returned value shall be a NULL-terminated
516
+ string and MAY be empty. The returned size SHALL include the terminating
517
+ null byte.
518
+
519
+ [horizontal]
520
+ Option value type:: NULL-terminated character string
521
+ Option value unit:: N/A
522
+ Default value:: null string
523
+ Applicable socket types:: all, when using TCP or IPC transports
524
+
525
+
526
+ ZMQ_PLAIN_PASSWORD: Retrieve current password
527
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
528
+ The 'ZMQ_PLAIN_PASSWORD' option shall retrieve the last password set for
529
+ the PLAIN security mechanism. The returned value shall be a NULL-terminated
530
+ string and MAY be empty. The returned size SHALL include the terminating
531
+ null byte.
532
+
533
+ [horizontal]
534
+ Option value type:: NULL-terminated character string
535
+ Option value unit:: N/A
536
+ Default value:: null string
537
+ Applicable socket types:: all, when using TCP or IPC transports
538
+
539
+
540
+ ZMQ_CURVE_PUBLICKEY: Retrieve current CURVE public key
541
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
542
+
543
+ Retrieves the current long term public key for the socket. You can
544
+ provide either a 32 byte buffer, to retrieve the binary key value, or
545
+ a 41 byte buffer, to retrieve the key in a printable Z85 format.
546
+ NOTE: to fetch a printable key, the buffer must be 41 bytes large
547
+ to hold the 40-char key value and one null byte.
548
+
549
+ [horizontal]
550
+ Option value type:: binary data or Z85 text string
551
+ Option value size:: 32 or 41
552
+ Default value:: null
553
+ Applicable socket types:: all, when using TCP transport
554
+
555
+
556
+ ZMQ_CURVE_SECRETKEY: Retrieve current CURVE secret key
557
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
558
+
559
+ Retrieves the current long term secret key for the socket. You can
560
+ provide either a 32 byte buffer, to retrieve the binary key value, or
561
+ a 41 byte buffer, to retrieve the key in a printable Z85 format.
562
+
563
+ [horizontal]
564
+ Option value type:: binary data or Z85 text string
565
+ Option value size:: 32 or 41
566
+ Default value:: null
567
+ Applicable socket types:: all, when using TCP transport
568
+
569
+
570
+ ZMQ_CURVE_SERVERKEY: Retrieve current CURVE server key
571
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
572
+
573
+ Retrieves the current server key for the client socket. You can
574
+ provide either a 32 byte buffer, to retrieve the binary key value, or
575
+ a 40 byte buffer, to retrieve the key in a printable Z85 format.
576
+
577
+ [horizontal]
578
+ Option value type:: binary data or Z85 text string
579
+ Option value size:: 32 or 41
580
+ Default value:: null
581
+ Applicable socket types:: all, when using TCP transport
582
+
583
+
584
+ ZMQ_ZAP_DOMAIN: Retrieve RFC 27 authentication domain
585
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
586
+
587
+ The 'ZMQ_ZAP_DOMAIN' option shall retrieve the last ZAP domain set for
588
+ the socket. The returned value shall be a NULL-terminated string and MAY
589
+ be empty. The returned size SHALL include the terminating null byte.
590
+
591
+ [horizontal]
592
+ Option value type:: character string
593
+ Option value unit:: N/A
594
+ Default value:: not set
595
+ Applicable socket types:: all, when using TCP transport
596
+
597
+
473
598
  RETURN VALUE
474
599
  ------------
475
600
  The _zmq_getsockopt()_ function shall return zero if successful. Otherwise it
@@ -512,5 +637,5 @@ linkzmq:zmq[7]
512
637
 
513
638
  AUTHORS
514
639
  -------
515
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
516
- Martin Lucina <mato@kotelna.sk>.
640
+ This page was written by the 0MQ community. To make a change please
641
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -48,5 +48,5 @@ linkzmq:zmq_term[3]
48
48
 
49
49
  AUTHORS
50
50
  -------
51
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
52
- Martin Lucina <mato@kotelna.sk>.
51
+ This page was written by the 0MQ community. To make a change please
52
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -81,5 +81,5 @@ linkzmq:zmq[7]
81
81
 
82
82
  AUTHORS
83
83
  -------
84
- This 0MQ manual page was written by Pieter Hintjens <ph@imatix.com>,
85
- Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>.
84
+ This page was written by the 0MQ community. To make a change please
85
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -39,9 +39,14 @@ When the address is `*`, _zmq_bind()_ shall generate a unique temporary
39
39
  pathname. The caller should retrieve this pathname using the ZMQ_LAST_ENDPOINT
40
40
  socket option. See linkzmq:zmq_getsockopt[3] for details.
41
41
 
42
- NOTE: any existing binding to the same endpoint shall be overridden. In this
43
- behavior, the 'ipc' transport is not consistent with the 'tcp' or 'inproc'
44
- transports.
42
+ NOTE: any existing binding to the same endpoint shall be overridden. That is,
43
+ if a second process binds to an endpoint already bound by a process, this
44
+ will succeed and the first process will lose its binding. In this behavior,
45
+ the 'ipc' transport is not consistent with the 'tcp' or 'inproc' transports.
46
+
47
+ NOTE: the endpoint pathname must be writable by the process. When the endpoint
48
+ starts with '/', e.g., `ipc:///pathname`, this will be an _absolute_ pathname.
49
+ If the endpoint specifies a directory that does not exist, the bind shall fail.
45
50
 
46
51
  Connecting a socket
47
52
  ~~~~~~~~~~~~~~~~~~~
@@ -81,5 +86,5 @@ linkzmq:zmq[7]
81
86
 
82
87
  AUTHORS
83
88
  -------
84
- This 0MQ manual page was written by Pieter Hintjens <ph@imatix.com>,
85
- Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>.
89
+ This page was written by the 0MQ community. To make a change please
90
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -21,7 +21,8 @@ message object shall be postponed by 0MQ until all users of the message or
21
21
  underlying data buffer have indicated it is no longer required.
22
22
 
23
23
  Applications should ensure that _zmq_msg_close()_ is called once a message is
24
- no longer required, otherwise memory leaks may occur.
24
+ no longer required, otherwise memory leaks may occur. Note that this is NOT
25
+ necessary after a successful _zmq_msg_send()_.
25
26
 
26
27
  CAUTION: Never access 'zmq_msg_t' members directly, instead always use the
27
28
  _zmq_msg_ family of functions.
@@ -51,5 +52,5 @@ linkzmq:zmq[7]
51
52
 
52
53
  AUTHORS
53
54
  -------
54
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
55
- Martin Lucina <mato@kotelna.sk>.
55
+ This page was written by the 0MQ community. To make a change please
56
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -53,5 +53,5 @@ linkzmq:zmq[7]
53
53
 
54
54
  AUTHORS
55
55
  -------
56
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
57
- Martin Lucina <mato@kotelna.sk>.
56
+ This page was written by the 0MQ community. To make a change please
57
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -44,5 +44,5 @@ linkzmq:zmq[7]
44
44
 
45
45
  AUTHORS
46
46
  -------
47
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
48
- Martin Lucina <mato@kotelna.sk>.
47
+ This page was written by the 0MQ community. To make a change please
48
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -45,7 +45,7 @@ while (true) {
45
45
  int rc = zmq_msg_init (&frame);
46
46
  assert (rc == 0);
47
47
  // Block until a message is available to be received from socket
48
- rc = zmq_recvmsg (socket, &frame, 0);
48
+ rc = zmq_msg_recv (socket, &frame, 0);
49
49
  assert (rc != -1);
50
50
  if (zmq_msg_get (&frame, ZMQ_MORE))
51
51
  fprintf (stderr, "more\n");
@@ -68,5 +68,5 @@ linkzmq:zmq[7]
68
68
 
69
69
  AUTHORS
70
70
  -------
71
- This 0MQ manual page was written by Chuck Remes <cremes@mac.com> and Pieter
72
- Hintjens <ph@imatix.com>.
71
+ This page was written by the 0MQ community. To make a change please
72
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -61,5 +61,5 @@ linkzmq:zmq[7]
61
61
 
62
62
  AUTHORS
63
63
  -------
64
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
65
- Martin Lucina <mato@kotelna.sk>.
64
+ This page was written by the 0MQ community. To make a change please
65
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -81,5 +81,5 @@ linkzmq:zmq[7]
81
81
 
82
82
  AUTHORS
83
83
  -------
84
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
85
- Martin Lucina <mato@kotelna.sk>.
84
+ This page was written by the 0MQ community. To make a change please
85
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -54,5 +54,5 @@ linkzmq:zmq[7]
54
54
 
55
55
  AUTHORS
56
56
  -------
57
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
58
- Martin Lucina <mato@kotelna.sk>.
57
+ This page was written by the 0MQ community. To make a change please
58
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -15,7 +15,9 @@ SYNOPSIS
15
15
  DESCRIPTION
16
16
  -----------
17
17
  The _zmq_msg_more()_ function indicates whether this is part of a multi-part
18
- message, and there are further parts to receive.
18
+ message, and there are further parts to receive. This method can safely be
19
+ called after _zmq_msg_close()_. This method is identical to _zmq_msg_get()_
20
+ with an argument of ZMQ_MORE.
19
21
 
20
22
 
21
23
  RETURN VALUE
@@ -35,7 +37,7 @@ while (true) {
35
37
  int rc = zmq_msg_init (&part);
36
38
  assert (rc == 0);
37
39
  // Block until a message is available to be received from socket
38
- rc = zmq_recvmsg (socket, &part, 0);
40
+ rc = zmq_msg_recv (socket, &part, 0);
39
41
  assert (rc != -1);
40
42
  if (zmq_msg_more (&part))
41
43
  fprintf (stderr, "more\n");
@@ -59,5 +61,5 @@ linkzmq:zmq[7]
59
61
 
60
62
  AUTHORS
61
63
  -------
62
- This 0MQ manual page was written by Chuck Remes <cremes@mac.com> and Pieter
63
- Hintjens <ph@imatix.com>.
64
+ This page was written by the 0MQ community. To make a change please
65
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
@@ -48,5 +48,5 @@ linkzmq:zmq[7]
48
48
 
49
49
  AUTHORS
50
50
  -------
51
- This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
52
- Martin Lucina <mato@kotelna.sk>.
51
+ This page was written by the 0MQ community. To make a change please
52
+ read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.