{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":595927717,"defaultBranch":"main","name":"zju-connect","ownerLogin":"Mythologyli","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-02-01T04:58:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/15955880?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1722754488.0","currentOid":""},"activityList":{"items":[{"before":"384f1dc701115dfde0ee49f30a693bbb9240f44b","after":"32039b0c814a4f9331d449ea263778129c6d09c8","ref":"refs/heads/main","pushedAt":"2024-08-19T05:02:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"bugfix: add length check for endpoint write #60\n\nDue to wintun-go module use error slice address, we extra check slice length before send to endpoint","shortMessageHtmlLink":"bugfix: add length check for endpoint write #60"}},{"before":"3de3da0dc1d4734dccd1f3e23e34631e39471c28","after":"384f1dc701115dfde0ee49f30a693bbb9240f44b","ref":"refs/heads/main","pushedAt":"2024-08-15T01:34:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mythologyli","name":"Myth","path":"/Mythologyli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15955880?s=80&v=4"},"commit":{"message":"ci: add Dockerfile to push paths","shortMessageHtmlLink":"ci: add Dockerfile to push paths"}},{"before":"96aab6c4ef2305fbaddcfee273d9633354fb5384","after":"3de3da0dc1d4734dccd1f3e23e34631e39471c28","ref":"refs/heads/main","pushedAt":"2024-08-14T11:39:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"chore: use root container as prd #61\n\nStill use /home/nonroot to keep backward support","shortMessageHtmlLink":"chore: use root container as prd #61"}},{"before":"1c9d4fad8f8cd46c083a7f86b34abce126fc456b","after":"96aab6c4ef2305fbaddcfee273d9633354fb5384","ref":"refs/heads/main","pushedAt":"2024-08-14T11:25:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"chore: use root container as prd","shortMessageHtmlLink":"chore: use root container as prd"}},{"before":"579a0299117754f8d5e69f8883ada04f4295c4e1","after":"1c9d4fad8f8cd46c083a7f86b34abce126fc456b","ref":"refs/heads/main","pushedAt":"2024-08-13T07:10:50.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"Merge pull request #59 from futuretech6/main\n\n使用 configs 项合并 compose 与 zju-connect 配置文件","shortMessageHtmlLink":"Merge pull request #59 from futuretech6/main"}},{"before":"2ab80257565786856a585ee1be9ec916f4bc8df5","after":null,"ref":"refs/heads/check_bind_port","pushedAt":"2024-08-04T06:54:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"}},{"before":"51469f573aaa572c02fdbb74469b724bed05d6b4","after":"579a0299117754f8d5e69f8883ada04f4295c4e1","ref":"refs/heads/main","pushedAt":"2024-08-04T06:47:45.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"Mythologyli","name":"Myth","path":"/Mythologyli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15955880?s=80&v=4"},"commit":{"message":"Merge pull request #58 from Mythologyli/check_bind_port\n\n增加初始化时端口占用检查","shortMessageHtmlLink":"Merge pull request #58 from Mythologyli/check_bind_port"}},{"before":"25f0c78a814d9108fbc7b6cf7c0e01338c980637","after":"51469f573aaa572c02fdbb74469b724bed05d6b4","ref":"refs/heads/main","pushedAt":"2024-07-30T07:28:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"chore: mention clash tun mode with zjuconnect in readme #57","shortMessageHtmlLink":"chore: mention clash tun mode with zjuconnect in readme #57"}},{"before":"6c0309a69bed9160b1bd87589f28b211abbafcf4","after":"2ab80257565786856a585ee1be9ec916f4bc8df5","ref":"refs/heads/check_bind_port","pushedAt":"2024-07-30T06:22:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"chore: update dockerfile to original source","shortMessageHtmlLink":"chore: update dockerfile to original source"}},{"before":"935f85415c89b222ac9d23314a0a4f952474abbd","after":"6c0309a69bed9160b1bd87589f28b211abbafcf4","ref":"refs/heads/check_bind_port","pushedAt":"2024-07-30T05:29:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"bugfix: add initial bind port check\n\nAssuming there is a \"nc\" process run before zjuconnect, which listening same tcp/udp port. By rights zjuconnect need report this port is already in use and exit, however due to \"nc\" use \"SO_REUSEPORT\" and \"SO_REUSEADDR\", zjuconnect still can bind to this port successfully, however the behavior for all sockets bound to that port is indeterminate (https://learn.microsoft.com/en-us/windows/win32/winsock/using-so-reuseaddr-and-so-exclusiveaddruse#using-so_reuseaddr). So we need to check for any potential port conflicts during initialization.\n\nBe attention that we use a strict policy to check, for example assume nc listen to local TCP addr \"192.168.189.123:1234\", and we want to listen to 127.0.0.1:1234, we also prohibit this operation although this operation maybe legal.","shortMessageHtmlLink":"bugfix: add initial bind port check"}},{"before":null,"after":"935f85415c89b222ac9d23314a0a4f952474abbd","ref":"refs/heads/check_bind_port","pushedAt":"2024-07-30T05:07:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"bugfix: add initial bind port check\n\nAssuming there is a \"nc\" process run before zjuconnect, which listening same tcp/udp port. By rights zjuconnect need report this port is already in use and exit, however due to \"nc\" use \"SO_REUSEPORT\" and \"SO_REUSEADDR\", zjuconnect still can bind to this port successfully, however the behavior for all sockets bound to that port is indeterminate (https://learn.microsoft.com/en-us/windows/win32/winsock/using-so-reuseaddr-and-so-exclusiveaddruse#using-so_reuseaddr). So we need to check for any potential port conflicts during initialization.\n\nBe attention that we use a strict policy to check, for example assume nc listen to local TCP addr \"192.168.189.123:1234\", and we want to listen to 127.0.0.1:1234, we also prohibit this operation although this operation maybe legal.","shortMessageHtmlLink":"bugfix: add initial bind port check"}},{"before":"eea52ad26fdf16da52fc186d5975e6a31819b4d2","after":"25f0c78a814d9108fbc7b6cf7c0e01338c980637","ref":"refs/heads/main","pushedAt":"2024-07-28T09:22:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"chore: update dependency\n\nwarning: change gvisor.dev/gvisor from @master branch to @go branch, which is more suitable for golang program","shortMessageHtmlLink":"chore: update dependency"}},{"before":"b927d54e94ae6a2e1de321bf7c3ec705536eb044","after":"eea52ad26fdf16da52fc186d5975e6a31819b4d2","ref":"refs/heads/main","pushedAt":"2024-02-23T19:15:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mythologyli","name":"Myth","path":"/Mythologyli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15955880?s=80&v=4"},"commit":{"message":"chore: upgrade to golang 1.22","shortMessageHtmlLink":"chore: upgrade to golang 1.22"}},{"before":"7118c1e586741f4de1599668b0131efae31b7474","after":null,"ref":"refs/heads/dial_direct_proxy","pushedAt":"2024-02-09T15:45:48.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"}},{"before":"c2c728c99ba1bf2e900d130de951a992348f1777","after":"b927d54e94ae6a2e1de321bf7c3ec705536eb044","ref":"refs/heads/main","pushedAt":"2024-02-09T15:22:04.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"Mythologyli","name":"Myth","path":"/Mythologyli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15955880?s=80&v=4"},"commit":{"message":"Merge pull request #55 from Mythologyli/dial_direct_proxy\n\nfeat: support dial_direct_proxy config","shortMessageHtmlLink":"Merge pull request #55 from Mythologyli/dial_direct_proxy"}},{"before":"dc5238225caa2788117c074b7b8c93d184661cc3","after":"7118c1e586741f4de1599668b0131efae31b7474","ref":"refs/heads/dial_direct_proxy","pushedAt":"2024-02-08T10:31:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"feat: support socks proxy for dial_direct_proxy(only tcp)","shortMessageHtmlLink":"feat: support socks proxy for dial_direct_proxy(only tcp)"}},{"before":"4e60b9389f5dcae7c689e949986626e28d556450","after":"dc5238225caa2788117c074b7b8c93d184661cc3","ref":"refs/heads/dial_direct_proxy","pushedAt":"2024-02-08T09:06:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"chore: refactor dial function format","shortMessageHtmlLink":"chore: refactor dial function format"}},{"before":"1857542b5350f7cc31b495bc33d971e7c1779dc4","after":"4e60b9389f5dcae7c689e949986626e28d556450","ref":"refs/heads/dial_direct_proxy","pushedAt":"2024-02-07T13:54:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"feat: support dial_direct_proxy config","shortMessageHtmlLink":"feat: support dial_direct_proxy config"}},{"before":null,"after":"1857542b5350f7cc31b495bc33d971e7c1779dc4","ref":"refs/heads/dial_direct_proxy","pushedAt":"2024-02-07T13:52:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"feat: support dial_direct_proxy config","shortMessageHtmlLink":"feat: support dial_direct_proxy config"}},{"before":"bc0ea9a02e0733675b2f70315423617ca0c33645","after":"c2c728c99ba1bf2e900d130de951a992348f1777","ref":"refs/heads/main","pushedAt":"2024-02-06T16:30:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"bugfix: fix invalid escape character usage","shortMessageHtmlLink":"bugfix: fix invalid escape character usage"}},{"before":"7105140b6d5988a8b2da40476f9a60f272671883","after":"bc0ea9a02e0733675b2f70315423617ca0c33645","ref":"refs/heads/main","pushedAt":"2024-02-06T16:20:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"bugfix: fix invalid escape character usage\n\nThanks to Long0x0, https://github.com/Mythologyli/zju-connect/commit/44f90e6d1137bd257114e6fe7cb2a7402dc150dd#r138328406","shortMessageHtmlLink":"bugfix: fix invalid escape character usage"}},{"before":"761c21d35eed757d93aa41108f916dd1282e7e5b","after":"7105140b6d5988a8b2da40476f9a60f272671883","ref":"refs/heads/main","pushedAt":"2024-02-06T15:18:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"refactor: change config path and add extra check for tun mode","shortMessageHtmlLink":"refactor: change config path and add extra check for tun mode"}},{"before":"2449be3ff07ee1620688187d795338fb295be6f7","after":null,"ref":"refs/heads/docker-build-tun","pushedAt":"2024-02-06T14:25:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"}},{"before":"a3690b91b2dee39eb6a9ecfb7b33ed550b3d4500","after":"761c21d35eed757d93aa41108f916dd1282e7e5b","ref":"refs/heads/main","pushedAt":"2024-02-06T14:15:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"feat: use domain suffix tree instead of map to match","shortMessageHtmlLink":"feat: use domain suffix tree instead of map to match"}},{"before":"44f90e6d1137bd257114e6fe7cb2a7402dc150dd","after":"a3690b91b2dee39eb6a9ecfb7b33ed550b3d4500","ref":"refs/heads/main","pushedAt":"2024-02-06T13:59:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"chore: update main_tun for custom_proxy_domain","shortMessageHtmlLink":"chore: update main_tun for custom_proxy_domain"}},{"before":"f6fc247e71c7c396636419b2f654773210999738","after":"44f90e6d1137bd257114e6fe7cb2a7402dc150dd","ref":"refs/heads/main","pushedAt":"2024-02-06T13:50:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"feat: support custom proxy domain config #53","shortMessageHtmlLink":"feat: support custom proxy domain config #53"}},{"before":"27b337051c2cddf272d53b146d6b1f297e57d9f7","after":"f6fc247e71c7c396636419b2f654773210999738","ref":"refs/heads/main","pushedAt":"2024-01-29T16:20:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Mythologyli","name":"Myth","path":"/Mythologyli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15955880?s=80&v=4"},"commit":{"message":"chore: bump version to 0.7.0","shortMessageHtmlLink":"chore: bump version to 0.7.0"}},{"before":"fd3410fcac51fce262f0e6d1e170fb1199b187b8","after":"27b337051c2cddf272d53b146d6b1f297e57d9f7","ref":"refs/heads/main","pushedAt":"2024-01-28T16:39:14.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Mythologyli","name":"Myth","path":"/Mythologyli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15955880?s=80&v=4"},"commit":{"message":"Merge pull request #52 from Geniucker/main\n\ndocs: add README_EN.md","shortMessageHtmlLink":"Merge pull request #52 from Geniucker/main"}},{"before":"18d1690dd3840431a29e306b7bdbe1f3157546c8","after":"fd3410fcac51fce262f0e6d1e170fb1199b187b8","ref":"refs/heads/main","pushedAt":"2023-11-18T08:32:39.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"Mythologyli","name":"Myth","path":"/Mythologyli","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15955880?s=80&v=4"},"commit":{"message":"Merge pull request #51 from Mythologyli/docker-build-tun\n\nci中添加构建tun only的镜像","shortMessageHtmlLink":"Merge pull request #51 from Mythologyli/docker-build-tun"}},{"before":null,"after":"2449be3ff07ee1620688187d795338fb295be6f7","ref":"refs/heads/docker-build-tun","pushedAt":"2023-11-18T08:18:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cxz66666","name":"ChenXuzheng","path":"/cxz66666","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57177467?s=80&v=4"},"commit":{"message":"ci: try build tun only mode for docker image","shortMessageHtmlLink":"ci: try build tun only mode for docker image"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xOVQwNTowMjo0Mi4wMDAwMDBazwAAAASdpRvF","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0xOVQwNTowMjo0Mi4wMDAwMDBazwAAAASdpRvF","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMS0xOFQwODoxODozOS4wMDAwMDBazwAAAAOyJ3KZ"}},"title":"Activity · Mythologyli/zju-connect"}