Time Nick Message 00:00 kahrl ok, so I tried to construct an example where the bad check would make the algorithm fail, and I can't because it seems PathStartsWith works regardless of what this check returns 00:00 kahrl but it should be fixed anyway 00:04 kahrl another thing that valgrind (still) reports is the uninitialized sin6_flowinfo field in socket.cpp, though fixing it would break pull #862 00:29 VanessaE regarding the timeouts/unable-to-allocate issue, https://forum.minetest.net/viewtopic.php?pid=104309#p104309 01:16 kahrl aside from bind/sendto (left out intentionally because of #862), this assortment of fixes removes a lot of valgrind warnings for me: https://gist.github.com/kahrl/6170401 01:53 kahrl btw, the console hasn't been working for me for the last few days -- the font can't be loaded, using a non-freetype build 01:53 kahrl "Unable to load font: /home/kahrl/minetest/bin/../textures/fontdejavusansmono.png" 01:54 kahrl PilzAdam: is it intentional that defaultsettings.cpp looks for textures/fontdejavusansmono.png instead of fonts/fontdejavusansmono.png? 01:55 VanessaE I don't think that was intentional, as we're told now to put those in fonts/ 01:55 VanessaE but what do I know :P 01:55 kahrl I'll wait for him to come back 01:55 VanessaE you'll be waiting a while :) 01:56 kahrl I have years of youtube videos left to watch :P 01:56 VanessaE heh 01:56 VanessaE better: tvtropes.org 01:56 kahrl oh god 01:56 kahrl I successfully managed to close that site a while ago 01:56 VanessaE LOL 05:57 celeron55 kahrl: oh pilzadam didn't fix the path there? i noticed it and mentioned it here though 05:57 celeron55 you can fix it 06:15 celeron55 VanessaE: if it's not that reproducible on a test server, then you should try the changes 06:21 VanessaE mmh 06:21 VanessaE I guess if that's how it has to go 06:24 VanessaE ok, the first change (comment-out the three-line DenyAccess bit) 06:24 VanessaE is in place and server is running with it. 06:25 VanessaE I didn't figure so much that a test server couldn't reproduce it, only that a server on the same box probably won't, since that's the same situation I have - e.g. it never fails for *me*, but for remote clients. 06:25 VanessaE anyway, it's up with the first change, try to sign in 06:57 celeron55 oh at work? well i guess i can 06:58 VanessaE didn't realize you were at work (duh :) ) 07:04 celeron55 it appears to work roughly like i'd have expected with that change; it just waits at "Connecting to server..." until the player is free 07:06 celeron55 a full log of what i did would be useful, maybe 07:07 VanessaE hm, log's too big to load, I'll have to delete it and have you try again 07:07 celeron55 just tail -n 100 it 07:07 VanessaE oh. duh :D 07:07 celeron55 or 1000, whatever 07:08 VanessaE now I feel utterly stupid :P 07:08 VanessaE http://pastebin.ubuntu.com/5957924/ 07:08 celeron55 on unix-like operating system one never has too large files 8) 07:09 celeron55 there isn't a single mention of me in there 07:09 VanessaE lemme expand the search 07:10 VanessaE *watches pastebin choke on a huge paste* :P 07:10 VanessaE http://pastebin.ubuntu.com/5957928/ 07:10 VanessaE last 100,000 lines :-) 07:15 celeron55 well it appears to me that it just doesn't receive the disconnect packet from the disconnecting client properly 07:15 celeron55 and then waits for the timeout 07:15 VanessaE for some users, that timeout never seems to happen, even after waiting several hours (well, so they claim) 07:16 celeron55 that's the odd thing 07:17 celeron55 keep this change in for a while and ask on the forum for anyone who still has the problem to tell 07:17 celeron55 because the server doesn't really do anything differently currently 07:18 celeron55 unless there is some very weird interaction caused by the client getting told about the failure (that i added in the DoS patch) 07:19 VanessaE someone mentioned earlier that the DoS patch might be the cause 07:19 celeron55 of course it is 07:19 celeron55 but the question is, is this a bug or is this just people freaking out of changedbehavior 07:19 celeron55 +space 07:19 VanessaE definitely a bug - I've got seasoned users having the same problem, and it happens on multiple servers 07:19 celeron55 i haven't yet seen a bug 07:20 VanessaE so far only twoelk, bulldog1 and I have managed to avoid it on mine, and I'm not sure how those two managed 07:20 celeron55 anyway, let's collect this data now 07:21 VanessaE ook 07:21 VanessaE ok 07:21 * sfan5 is about to commit a small XSS fix for the masterserver list.js 07:21 celeron55 if the result of this is that it works as before, then that is a useful result 07:21 celeron55 but one thing: add a log message to the other thing that i suggested to comment out 07:21 VanessaE and this is just with that one DenyAccess call commented out 07:22 celeron55 it would be useful to see in logs whether that code gets ever called 07:22 celeron55 (instead of commenting it out) 07:22 VanessaE sure 07:27 VanessaE ok, with only that first DenyAccess() call commented out, and an extra log call (I stuck it in infostream) inside the if() block at line 4653. 07:27 VanessaE AND I nuked the old log. server's up. 07:29 celeron55 then just wait for actual users 8) 07:29 VanessaE heh 08:31 Taoki Was looking at the new feature for seasons. Is this configurable via Lua? Like, do you specify temperatures and features for each time of year there, or is functionality all hard-coded? 08:42 Taoki Ugh. Not a month passes without some change in GIT breaking mods and requiring changes to them or moving them to a new folder 08:43 Taoki Fixed all of them though, server working again 09:44 Exio4 Taoki: weather? ask proller 09:44 Exio4 it is overly WIP and he wanted to merged it just for the lulz, even if it isn't finished and needs tweaks, etc 11:36 PilzAdam PilzAdam: is it intentional that defaultsettings.cpp looks for textures/fontdejavusansmono.png instead of fonts/fontdejavusansmono.png? <- oops, no 11:39 PilzAdam Ill fix that now 13:59 proller_ update jsoncpp - https://github.com/proller/minetest/commit/ea346f43629c90301267176f2e0b1cde6231d18f 14:00 proller_ trivial 14:00 PilzAdam whats the benefit from this? 14:00 proller_ fixes some rare bugs 14:01 PilzAdam did any of these occur in Minetest? 14:02 proller_ maybe no 14:57 celeron55 at least you should add to the commit to which version it updates to 14:57 celeron55 there's no way to know otherwise 14:58 Jordach celeron55, i just dealt with the crevis team and cleared things up for you 15:00 proller_ celeron55, its latests version from svn 15:01 celeron55 proller_: i don't think we should update to those but rather to actual releases at most 15:02 celeron55 that way there are less meaningless commits and less chance of unstable library code 15:08 celeron55 that commit is just useless; you probably see it yourself too 15:09 celeron55 hmm, well, one line does something: the addition of allocated_ = false; to the else branch 15:09 celeron55 everything else does exactly nothing 15:11 celeron55 throw it in but don't waste your or anyone else's time on these library SVN updates in the future; it doesn't benefit anyone 15:28 proller_ commit or no ? 15:34 Exio4 ... 16:25 kahrl should I push https://gist.github.com/kahrl/6170401? 17:39 PilzAdam kahrl, seems good 20:33 Tesseract kahrl: I fixed #862. 20:42 kahrl Tesseract: let me see 20:43 Tesseract Hmmm, that might catch 0.0.0.0 for singleplayer if you use IPv6... 20:43 kahrl that works, but it might not be the best way of doing it 20:44 kahrl yeah and it would break a server that uses ipv6_server = true unless it also sets bind_address 20:45 kahrl perhaps delay the socket() call and decision about m_addr_family until Bind()? 20:45 kahrl but what to do with client sockets 20:47 Tesseract kahrl: The check IS done in UDPSocket::Bind(). 20:48 kahrl My original "vision" for this was to allow setting a list of addresses to bind to. Then it would create a separate socket for each bind address, using an appropriate family. When binding to 0.0.0.0 the server automatically creates new sockets for each actual local address that someone connects to 20:49 kahrl The latter is to fix the case where the server has multiple interface (with IPs A and B), minetest bidns to 0.0.0.0, client connects to IP address A, but server sets the source address of its packets to the client to B 20:49 kahrl interfaces* 20:49 kahrl binds* 20:49 kahrl ... causing a timeout on the client side 20:51 kahrl If you want a purely ipv4 server, set bind_address = 0.0.0.0, if you want a purely ipv6 server set it to ::, if you want both set it to 0.0.0.0, :: 20:51 kahrl anyway, that was my vision and it's quite complicated so it never got anywhere 20:51 Tesseract Is the address family used before bind()? 20:52 proller kahrl, nono. :: for both must work 20:52 Tesseract proller: You mean :: == 0.0.0.0? 20:52 proller 0.0.0.0 for v4, :: for other 20:53 proller Tesseract, no, not == , but when listen :: with v6 - it can recieve v4 connections 20:53 Tesseract proller: That is how it is now, but the ipv6_server setting is also used... 20:53 kahrl proller: why must it? 20:54 Tesseract proller: That is what I meant, it doesn't work like that. (AFAIK) 20:54 proller kahrl, by v6 design 20:54 proller it creates v46 socket 20:54 proller possible to make pure v6, but no sense now 20:54 kahrl afaik socket implementation vary quite wildly in this area 20:54 kahrl +s 20:55 * Tesseract sees this spiraling out of his skill zone. ;-) 20:56 Tesseract Anyway, singleplayer with a IPv6 server should work now. proller: Do you have IPv6? 20:56 proller yes 20:57 proller v6 only - its my server 20:57 Tesseract proller: Can you test my pull with it? 20:57 proller not now 21:00 kahrl I know a bit about pure ipv6 including the router solicitation stuff etc. But then I wanted to know how it interacted with ipv4. Saw that there was seemingly at least a dozen competing ways, stopped caring. 21:02 proller most common way - dual 46 socket 21:02 proller it now works in minetest 21:02 proller you listen :: in v6 and it can revieve v4 connections and show it as :ffff:1.2.3.4 21:03 kahrl proller, yeah, it's good that it works 21:03 kahrl however I have reason to believe it doesn't work in windows 21:03 kahrl (I assume your server is running on some unixlike OS) 21:04 Tesseract man 7 ipv6 mentions something like that. The addresses are mapped to IPv6. 21:04 kahrl http://msdn.microsoft.com/en-us/library/windows/desktop/bb513665%28v=vs.85%29.aspx <-- says you need to set some socket options to get dual stack sockets 21:04 kahrl and that only works in vista or later 21:05 Tesseract Oh, right, windows compatibility. :-( 21:05 proller unixlike have sysctl for it, and usualy 46 enabled by default 21:07 Tesseract Looks like the only way is to use dual sockets, unless we drop XP support. 21:07 kahrl "an application has to create two sockets, one socket for use with IPv4 and one socket for use with IPv6" 21:07 kahrl ^ works on XP / Server 2003 and is kind of what I described above in my "vision" 21:08 kahrl but I agree, it's probably not worth to make such a complicated system 21:08 kahrl worth it* 22:09 kahrl what do you guys think of the download API for lua in #490? 22:10 kahrl it got kind of lost in the list of pull requests, but now I could add it easily to the httpfetch branch 22:10 kahrl (rebasing the scriptapi part and using httpfetch for the core implementation) 22:12 kahrl the practical difference between that and Jeija's implementation is that httpfetch has a limit on parallel fetches (media_fetch_threads), and uses only at most 1 thread 22:43 PilzAdam kahrl, there should be a setting that disables this function by default 23:10 kahrl why? I mean, mods can already do os.execute("wget ...") to upload information to some server 23:10 kahrl PilzAdam: ^ 23:10 PilzAdam not on windows 23:10 Exio4 i guess a way for getting if "curl" is available should be there 23:11 kahrl isn't there some wget equivalent on windows? 23:11 Exio4 you can even use things like the irc mod 23:11 Exio4 for running C code 23:12 kahrl you could write some .vbs file and execute it 23:16 kahrl or even io.popen("ftp") 23:19 kahrl so my point is that it's not really worth it to restrict access to a single unsafe function where there are many more out there 23:19 kahrl restricting access to all unsafe functions might be worth considering (I bet sapier has something to say about this) 23:20 Exio4 in a dream world i would like to see a "permissions-like" system for mods 23:21 Exio4 where they could ask for "System access" and warn the user, and if it doesn't accept; it couldn't use os.xyz 23:21 Exio4 and so on 23:21 Exio4 :P 23:21 Exio4 but that would require one "lua stack" / mod, no? 23:22 kahrl yeah something like that ^ and what if mods call functions from each other? 23:22 Exio4 good question too 23:25 kahrl perhaps something like minetest.get_library("os") which would return the full os library which is invisible otherwise; only usable during the registration phase (when the modname is known) 23:25 kahrl then the mod would do local os = minetest.get_library("os") 23:26 Exio4 it could work too, but then you would need to protect it somehow 23:26 Exio4 and, how does serialize works? 23:26 kahrl it's the mod responsibility to protect it (e.g. by using local) 23:27 kahrl what about serialize? 23:27 Exio4 isn't there some usage of os. in builtin for files? 23:28 kahrl builtin can have full access to everything of course 23:28 kahrl they would be made invisible at the end of builtin 23:29 Exio4 does lua use some thing like closures? or would be probably to "avoid" all of this by replacing functions that will run under builtin functions, (like the one for checking if the pos is protected, or so) 23:30 Exio4 oh man, my english sucks 23:30 kahrl it has closures 23:30 Exio4 k 23:30 Exio4 nevermind then 23:31 kahrl maybe not in the completely same sense as in lisp/haskell/whatever, but the same concept 23:31 Exio4 yes, that is what i meant "some thing like" 23:31 Exio4 something* 23:40 kahrl I see that #490 returns the cURL error code to Lua. Would that be needed or would succeeded = true/false, timeout = true/false be enough? 23:41 kahrl I ask because the httpfetch module is designed in a way that cURL could (theoretically) replaced by another library 23:41 Exio4 i guess 23:41 kahrl so it doesn't expose cURL types or error codes or whatnot 23:45 kahrl wish Jeija was around so I could ask about his thoughts 23:46 PilzAdam he made this with it: http://youtu.be/jo_GT6a4M90 23:49 kahrl ah, I saw that back in the day when I came back 23:49 kahrl is there source code for it? 23:49 kahrl ah, it's in the video ;) 23:50 kahrl his callbacks just ignore response and error code 23:53 Exio4 wow, didn't know about it 23:53 PilzAdam he won the mesecon machine competition with that