{"action":"created","issue":{"url":"https://api.github.com/repos/tpoechtrager/wc-ng/issues/4","repository_url":"https://api.github.com/repos/tpoechtrager/wc-ng","labels_url":"https://api.github.com/repos/tpoechtrager/wc-ng/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/tpoechtrager/wc-ng/issues/4/comments","events_url":"https://api.github.com/repos/tpoechtrager/wc-ng/issues/4/events","html_url":"https://github.com/tpoechtrager/wc-ng/issues/4","id":135115461,"number":4,"title":"clientside demo recorder does not filter N_SERVINFO messages","user":{"login":"andrius4669","id":4699695,"avatar_url":"https://avatars.githubusercontent.com/u/4699695?v=3","gravatar_id":"","url":"https://api.github.com/users/andrius4669","html_url":"https://github.com/andrius4669","followers_url":"https://api.github.com/users/andrius4669/followers","following_url":"https://api.github.com/users/andrius4669/following{/other_user}","gists_url":"https://api.github.com/users/andrius4669/gists{/gist_id}","starred_url":"https://api.github.com/users/andrius4669/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrius4669/subscriptions","organizations_url":"https://api.github.com/users/andrius4669/orgs","repos_url":"https://api.github.com/users/andrius4669/repos","events_url":"https://api.github.com/users/andrius4669/events{/privacy}","received_events_url":"https://api.github.com/users/andrius4669/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2016-02-20T20:05:39Z","updated_at":"2016-02-21T09:52:51Z","closed_at":null,"body":"One of my friends, MTH, observed bug which happened only in spaghettimod servers (his particular demo was captured in DEMOPHOBIA).\r\nDemos recorded in these servers switched local client cn to cn of one recording demo, therefore breaking spectating of one who recorded demo.\r\nI was able to confirm broken demo by playing it back in unmodified client.\r\nI tracked this down to N_SERVINFO being present in demo file.\r\nTherefore, I looked at code and it was pretty obvious that it does not filter out N_SERVINFO message.\r\nWhile N_SERVINFO isn't sent more than once in normal servers, pisto apparently used it to allow multiple authconnect offers from server.\r\nPlease filter N_SERVINFO message from being included to demos, add DEMORECORDER_SKIP_PACKET_NC to N_SERVINFO handler or something."},"comment":{"url":"https://api.github.com/repos/tpoechtrager/wc-ng/issues/comments/186787135","html_url":"https://github.com/tpoechtrager/wc-ng/issues/4#issuecomment-186787135","issue_url":"https://api.github.com/repos/tpoechtrager/wc-ng/issues/4","id":186787135,"user":{"login":"pisto","id":489967,"avatar_url":"https://avatars.githubusercontent.com/u/489967?v=3","gravatar_id":"","url":"https://api.github.com/users/pisto","html_url":"https://github.com/pisto","followers_url":"https://api.github.com/users/pisto/followers","following_url":"https://api.github.com/users/pisto/following{/other_user}","gists_url":"https://api.github.com/users/pisto/gists{/gist_id}","starred_url":"https://api.github.com/users/pisto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pisto/subscriptions","organizations_url":"https://api.github.com/users/pisto/orgs","repos_url":"https://api.github.com/users/pisto/repos","events_url":"https://api.github.com/users/pisto/events{/privacy}","received_events_url":"https://api.github.com/users/pisto/received_events","type":"User","site_admin":false},"created_at":"2016-02-21T09:52:51Z","updated_at":"2016-02-21T09:52:51Z","body":"@andrius4669 the N_SERVINFO are used in spaghettimod for two modules. one to change the server description for already connected clients (I don't actually use that module right now), another to have network fences: since it's the only packet that triggers an immediate response without having any side effect, I use that to determine exactly when a client has received and elaborated all the previous network messages. It is handy to write a reliable maploaded module (hopmod checked for N_MAPCRC or for the first N_PING, but that's works much worse because those messages aren't sent exactly when the client parses the new map message and require manual adjustment of timing tresholds). I do not use network fences anymore when doing N_REQAUTH on client join, because unfortunately the client responds with auth requests that are queued in the `game::messages` buffer so the would be sent actually after the fence thing (in contrast to the challenge answer which is instead sent directly; I have already asked eihrul to fix it but he didn't listen)."}}