)]}' { "commit": "1435f956b30b36898178091b951cb6ba8271f5aa", "tree": "97beb1794295d52bb063f0e129aed04187c76bfc", "parents": [ "5c4f649c0c2b3462815835d75f7ab82ed4860023" ], "author": { "name": "Roman Arutyunyan", "email": "arut@nginx.com", "time": "Mon Jun 04 19:50:00 2018 +0300" }, "committer": { "name": "Roman Arutyunyan", "email": "arut@nginx.com", "time": "Mon Jun 04 19:50:00 2018 +0300" }, "message": "Stream: udp streams.\n\nPreviously, only one client packet could be processed in a udp stream session\neven though multiple response packets were supported. Now multiple packets\ncoming from the same client address and port are delivered to the same stream\nsession.\n\nIf it\u0027s required to maintain a single stream of data, nginx should be\nconfigured in a way that all packets from a client are delivered to the same\nworker. On Linux and DragonFly BSD the \"reuseport\" parameter should be\nspecified for this. Other systems do not currently provide appropriate\nmechanisms. For these systems a single stream of udp packets is only\nguaranteed in single-worker configurations.\n\nThe proxy_response directive now specifies how many packets are expected in\nresponse to a single client packet.\n", "tree_diff": [ { "type": "modify", "old_id": "878c6be19b86ea5a8c21eb51581ddbb3fd9672ce", "old_mode": 33188, "old_path": "src/core/ngx_connection.c", "new_id": "dc6067922890547abf13657c5882a478fcf478bd", "new_mode": 33188, "new_path": "src/core/ngx_connection.c" }, { "type": "modify", "old_id": "e4dfe5879ccbdc65b76ce34b83792142b8bc1a75", "old_mode": 33188, "old_path": "src/core/ngx_connection.h", "new_id": "ef0755800570ae0019fda852931b5feb5843645c", "new_mode": 33188, "new_path": "src/core/ngx_connection.h" }, { "type": "modify", "old_id": "2069373baaac403552adaed91859553af697ec32", "old_mode": 33188, "old_path": "src/core/ngx_core.h", "new_id": "93ca9174d31cc6f5e3c0f9f4b36e70fc23aab562", "new_mode": 33188, "new_path": "src/core/ngx_core.h" }, { "type": "modify", "old_id": "bcc2271f121ae127c3b8f703812e034dfc7292e7", "old_mode": 33188, "old_path": "src/event/ngx_event.h", "new_id": "44f9e05445cf3d123e185c9458f6a7a91bdc5b4f", "new_mode": 33188, "new_path": "src/event/ngx_event.h" }, { "type": "modify", "old_id": "962b8e37e93f84ce9b64a39994b50ff0bcb2f256", "old_mode": 33188, "old_path": "src/event/ngx_event_udp.c", "new_id": "8b0ae55394aa89bb5a02a5696bad9de21d437568", "new_mode": 33188, "new_path": "src/event/ngx_event_udp.c" }, { "type": "modify", "old_id": "30572cdd99fd1bfaf8cfa69ad36b81736ff5ec9f", "old_mode": 33188, "old_path": "src/stream/ngx_stream_proxy_module.c", "new_id": "792bb77585f2f2dbec0fbdb2aad6155d928fe31e", "new_mode": 33188, "new_path": "src/stream/ngx_stream_proxy_module.c" }, { "type": "modify", "old_id": "73947f465c53eb242e21d661bd98adc6945f38ac", "old_mode": 33188, "old_path": "src/stream/ngx_stream_upstream.h", "new_id": "741ef4e0af16b5f16629d9dfa0212f0fdc167da5", "new_mode": 33188, "new_path": "src/stream/ngx_stream_upstream.h" } ] }