#gemrb@irc.freenode.net logs for 2 Feb 2012 (GMT)

Archive Today Yesterday Tomorrow
GemRB homepage

[00:13:05] <brad_a> tomprince: http://dl.dropbox.com/u/13866402/iniload.patch
[00:13:20] <brad_a> should be more acceptable this go 'round ;-)
[00:18:20] --> ronsen has joined #gemrb
[00:21:59] <-- kingron has left IRC (Ping timeout: 272 seconds)
[00:22:25] <brad_a> my height calc is wrong but other than that everything seems to work fine
[00:24:23] <brad_a> ok fixed that too
[00:30:28] <brad_a> pretty sure that should compile event for msvc6 ;-)
[00:32:15] <brad_a> also avenger should be apeased as there is not std anything :D
[00:40:12] <tomprince> Looks good.
[00:40:38] <tomprince> I'm not sure about the width handly.
[00:40:50] <tomprince> The whitelist should static const.
[00:41:28] <tomprince> The if (inistream) should be if (inistream){\nerror
[00:42:01] <tomprince> And all the if statements should have the body on a seperate line.
[00:42:57] <tomprince> And, you probably just do 'struct {...} whitelist[] = { ...};'
[00:43:11] <tomprince> i.e. you don't need to give a name to the type.
[00:43:20] <brad_a> heh i beat you to that
[00:43:28] <brad_a> already donte
[00:43:49] <brad_a> still need a name tho
[00:43:59] <brad_a> since i get the struct in the loop
[00:45:14] <tomprince> If you *are* going to print, you hsould use printMessage.
[00:45:43] <brad_a> yes i only recently discovered that...
[00:46:04] <brad_a> we dont really need to print tho
[00:46:08] <brad_a> that was for debugging
[00:46:24] <tomprince> yes.
[00:47:10] <brad_a> i dont know what you mean by "if (inistream){\nerror"
[00:48:07] <brad_a> i hate if multiline if statements without {} :-/
[00:49:10] <brad_a> good call on the static const tho
[00:49:14] <brad_a> much better
[00:57:05] <brad_a> should i wait to push this till others see?
[00:58:11] <brad_a> same link if you want to look at the amended version fyi
[01:23:44] <-- Dude-X_ has left IRC (Quit: Leaving)
[01:50:28] <tomprince> brad_a: Well, then put the {}
[01:50:42] <tomprince> But the body should be on a sperate line.
[01:51:56] <tomprince> The if(iniStream) should be an early exit.
[02:11:55] <brad_a> done
[02:17:53] <tomprince> brad_a: Should check the return value of Open, if listSize is a variable, it should be const, AudioDriverName should be on a new line.
[02:18:03] <tomprince> Otherwise looks good.
[02:18:06] <brad_a> k
[02:20:23] <tomprince> Well, I don't know about the resolution thing.
[02:20:40] <brad_a> it only does anything if its not set
[02:20:44] <tomprince> I wonder if it would be better, if we are guessing are resolution, to have a table of common resolution pairs.
[02:20:50] <brad_a> its so i can load gemrb without a gemrb.cfg later
[02:21:01] <brad_a> we arent guessing so much
[02:21:11] <brad_a> its what they have in their baldur.ini
[02:21:30] <brad_a> its a half guess
[02:21:58] <tomprince> Yeah, but does the widescreen modify it? And what if they actually do have a widescreen resolution?
[02:22:14] <tomprince> Honesly, I don't know. All mine are empty anyway.
[02:22:33] <brad_a> i would assume then that theirs is set with both the width and the height which i check first
[02:22:44] <brad_a> also gemrb.cfg will override this so i dont see the problem
[02:23:55] <tomprince> I certainly would like to be able to load, without giving a config file.
[02:24:41] <brad_a> me too thats why im doing this ;-)
[02:25:14] <brad_a> i dont have any idea how to get the resolution any other way tho
[02:25:25] <brad_a> an if there is a better way then why have it in cfg at all?
[02:26:23] <tomprince> Well, I think it used to be that you needed to set *everything* in the config.
[02:26:41] <brad_a> yikes
[02:26:42] <tomprince> Now we have defaults for most things.
[02:26:51] <CIA-41> GemRB: 03tom.prince * ra0d4b6e7e215 10gemrb/gemrb/core/Interface.cpp: Report error loading baldur.ini.
[02:26:54] <brad_a> like sendmail *shudder*
[02:29:03] <tomprince> Well, for me baldur.ini is empty, and not writeable, so I'll not use it. So, I'd like defaults that work without that.
[02:30:57] <tomprince> GetWindowPack in GUIWorld.py has some hints on how we could detect it.
[02:33:17] <brad_a> that would be nice
[02:34:28] <tomprince> Does sdl have some way of detecting screen size? And then using the biggest resolution that works, from those there are graphics for?
[02:35:58] <brad_a> not that i know of, but i havent looked
[02:47:38] --> Baldurer has joined #gemrb
[02:56:47] <CIA-41> GemRB: 03bradallred * r7e2135b56977 10gemrb/gemrb/core/Interface.cpp: Merge branch 'master' of ssh://gemrb.git.sourceforge.net/gitroot/gemrb/gemrb
[02:56:57] <CIA-41> GemRB: 03bradallred * rc32c71c7fd51 10gemrb/apple/CocoaWrapper/ios/ (GEM_AppDelegate.h GEM_AppDelegate.m GEM_ConfController.m): GEM_AppDelegate: don't quit if engine initialization fails. instead restart the wrapper interface so we can try again.
[02:56:58] <CIA-41> GemRB: 03bradallred * r0d3c16505b77 10gemrb/gemrb/core/Interface.cpp:
[02:56:58] <CIA-41> GemRB: Interface: rewrite LoadINI() to use INIImporter.
[02:56:58] <CIA-41> GemRB: Loads only the variables from game.ini that we are interested in instead of everything. Values not set in the ini will default to values provided in our whitelist map.
[02:56:58] <CIA-41> GemRB: 03bradallred * reeceb6b142ae 10gemrb/apple/CocoaWrapper/ios/GEM_AppDelegate.m: GEM_AppDelegate: fix leaking the confController when starting a game.
[03:07:19] --> blodget has joined #gemrb
[03:08:05] <-- blodget has left IRC (Client Quit)
[03:20:47] <-- Baldurer has left IRC (Ping timeout: 252 seconds)
[03:34:18] <gembot> build #148 of nmake-msvc++10 is complete: Success [3build successful] Build details are at http://buildbot.gemrb.org/builders/nmake-msvc%2B%2B10/builds/148
[03:40:06] <brad_a> tomprince: do you see a problem with changing the load order of the core like this: http://dl.dropbox.com/u/13866402/iniloadorder.patch
[04:06:39] --> Beholder has joined #gemrb
[04:34:07] <-- Beholder has left #gemrb
[04:51:09] <-- wrotek has left IRC (Ping timeout: 240 seconds)
[04:51:13] --> mrugiero has joined #gemrb
[04:52:36] <-- mrugiero has left #gemrb
[04:52:50] <-- brad_a has left IRC (Quit: brad_a)
[05:15:29] <tomprince> I don't see anything fundamentally wrong with it. But that code is a random collection of things, with no mention of dependencies.
[05:15:51] <tomprince> Also, looking at the patch, I see a number of things I want to cleanup, but they were there originally.
[05:16:24] <tomprince> The random number generator intialization should be commented.
[05:16:38] <tomprince> and the strdup should probably just use an array on the stack.
[05:22:56] <gembot> build #149 of nmake-msvc++10 is complete: Failure [4failed compile] Build details are at http://buildbot.gemrb.org/builders/nmake-msvc%2B%2B10/builds/149 blamelist: bradallred@me.com
[05:40:31] <-- ronsen has left IRC (Quit: Leaving)
[05:56:29] <-- joneirik has left IRC (Remote host closed the connection)
[07:37:52] --> lynxlynxlynx has joined #gemrb
[07:37:52] <-- lynxlynxlynx has left IRC (Changing host)
[07:37:52] --> lynxlynxlynx has joined #gemrb
[07:37:52] --- ChanServ gives channel operator status to lynxlynxlynx
[08:30:19] <-- lynxlynxlynx has left IRC (Remote host closed the connection)
[08:46:24] --> barra_home has joined #gemrb
[08:51:46] <edheldil> tomprince, brad_a : Another possibility is to store ini file defaults in gemrb override
[09:04:01] <tomprince> That sounds like a reasonable solution.
[09:06:25] <fuzzie> that is a good idea.
[09:13:16] --> lynxlynxlynx has joined #gemrb
[09:13:16] <-- lynxlynxlynx has left IRC (Changing host)
[09:13:16] --> lynxlynxlynx has joined #gemrb
[09:13:17] --- ChanServ gives channel operator status to lynxlynxlynx
[10:37:20] --> kettuz has joined #gemrb
[13:24:10] --> Baldurer has joined #gemrb
[13:35:41] <-- kettuz has left IRC (Remote host closed the connection)
[14:46:35] <-- Kiranos_ has left IRC (Remote host closed the connection)
[14:46:49] --> Kiranos has joined #gemrb
[15:20:44] --> wrotek_ has joined #gemrb
[15:20:44] --> wrotek has joined #gemrb
[15:21:02] <-- wrotek has left IRC (Client Quit)
[15:43:29] <-- lynxlynxlynx has left IRC (Ping timeout: 240 seconds)
[16:02:43] --> demitar has joined #gemrb
[16:16:19] --> SiENcE has joined #gemrb
[16:37:27] <-- exultbot has left IRC (signing off...)
[16:38:42] --> exultbot has joined #gemrb
[16:38:42] --- Topic for #gemrb is: GemRB 0.7.0 | http://gemrb.org | Be wary of your words for there are Modron sensors in this channel: http://log.usecode.org/gemrblog.php | Hey <CHARNAME>, we need some awesome screenshots! | import pdb; pdb.set_trace()
[16:38:42] --- Topic for #gemrb set by lynxlynxlynx!~quassel@sourcemage/warlock/lynxlynxlynx at Fri Dec 30 14:46:00 2011
[17:09:30] <-- SiENcE has left IRC (Quit: @all: cya)
[17:12:59] <-- Baldurer has left IRC (Ping timeout: 276 seconds)
[18:23:25] --> Yoshimo has joined #gemrb
[18:26:03] --> edheldil_ has joined #gemrb
[18:31:58] <-- edheldil_ has left IRC (Read error: Connection reset by peer)
[18:48:18] --> brad_a has joined #gemrb
[18:48:42] <brad_a> tomprince: did you see what i said about changing buildbot binaries from release to debug?
[18:50:30] --> kingron has joined #gemrb
[18:54:26] <tomprince> I did. Where you refering to the mac or the windows ones?
[18:55:56] <brad_a> mac and ios
[18:56:06] <brad_a> just cahnge the parameter that says release to debug
[18:56:34] <tomprince> Is there a release with debug info?
[18:56:39] <brad_a> release stirps symbos, disables asserts, and enables compiler optimization
[18:56:49] <brad_a> and the gemrb _debug flag too
[18:56:53] <brad_a> no
[18:57:03] <brad_a> i have jsut setup debug and release
[18:57:20] <tomprince> Well, I'd guess having optimization is probably desired?
[18:58:09] <-- gembot has left IRC (Quit: buildmaster reconfigured: bot disconnecting)
[18:58:20] --> gembot has joined #gemrb
[19:01:52] <CIA-41> GemRB: 03bradallred * r4badd49cf7d4 10gemrb/apple/CocoaWrapper/ios/GEM_ConfController.m:
[19:01:52] <CIA-41> GemRB: GEM_ConfController: optimize the way the wrapper launches GemRB
[19:01:52] <CIA-41> GemRB: 1. ensure gemrb is called from the main thread
[19:01:52] <CIA-41> GemRB: 2. no return is possible to the deallocated configuration controller
[19:01:52] <CIA-41> GemRB: 3. return to the cocoa runoop to ensure proper disposal of autoreleased objects, etc
[19:01:53] <CIA-41> GemRB: 4. call stack size is significantly reduced (from 23 to 11 frames)
[19:02:54] <brad_a> tomprince: yes for troubleshooting these crashes debug builds would be great :) release configuration would be desired for stable release binaries only
[19:03:46] <brad_a> re optimization: i dont think disabling optimization has a tremendous impact
[19:03:59] <brad_a> but it doees make it harder to see exactly where something is crashing
[19:04:09] <brad_a> thats why i disabled it for debug builds
[19:04:58] <tomprince> Well, I was just thinking that iOS machines might benefit significantly.
[19:05:22] <tomprince> I have no idea, and have changed it.
[19:05:33] <brad_a> yeah if people complain about performance i can reenable some optimization for ios
[19:05:44] <brad_a> and you wont need to do anything :)
[19:06:05] <brad_a> the static libraries are still optimized so that will help performance a bit
[19:11:35] --> lynxlynxlynx has joined #gemrb
[19:11:36] <-- lynxlynxlynx has left IRC (Changing host)
[19:11:36] --> lynxlynxlynx has joined #gemrb
[19:11:36] --- ChanServ gives channel operator status to lynxlynxlynx
[19:35:54] <brad_a> tomprince: you mentioned wanting to fix up some things in the core loading process. were you going to do that soonish or should i continue developing what im trying to do?
[19:55:34] <tomprince> I have no plans, one way or the other.
[20:23:34] <-- brad_a has left IRC (Quit: brad_a)
[20:25:02] <gembot> build #150 of nmake-msvc++10 is complete: Success [3build successful] Build details are at http://buildbot.gemrb.org/builders/nmake-msvc%2B%2B10/builds/150
[20:27:34] <-- Yoshimo has left IRC (Quit: Yoshimo)
[20:47:41] <-- kingron has left IRC (Remote host closed the connection)
[20:51:47] --> brad_a has joined #gemrb
[21:45:59] <brad_a> im having difficulty seeing how changing plugins path to a relative path breaks palette loading
[21:46:28] <brad_a> most importer and all other plugins successfully load
[21:46:34] <brad_a> ^MOS not most
[21:47:45] <brad_a> well maybe i should update the plugins in the other path to makes sure there isnt a separate issue
[21:49:46] <brad_a> im guessing PluginsPath is used for more than plugin loading?
[21:55:49] --> joneirik has joined #gemrb
[21:59:30] <brad_a> oh i guess the way im doing this probably means i need to call resolvepath
[22:05:43] <brad_a> :-/
[22:08:14] <brad_a> maybe im missing a plugin and dont realize it
[22:11:34] <brad_a> heh. yes apparently BMPImporter is a required plugin
[22:11:52] <brad_a> well that was a waste of 30 min
[22:29:57] <-- wrotek_ has left IRC (Read error: Connection reset by peer)
[22:30:18] --> wrotek_ has joined #gemrb
[22:49:24] <brad_a> is WMPImporter required for anything other than mods?
[22:49:46] <fuzzie> how do you mean?
[22:50:07] <brad_a> i guess i mean what is it for? that is a video format right?
[22:50:10] <fuzzie> no
[22:50:13] <fuzzie> :-p
[22:50:17] <brad_a> lol audio?
[22:50:18] <fuzzie> it is world maps
[22:50:21] <brad_a> oh
[22:50:22] <fuzzie> which is kind of important really
[22:50:22] <brad_a> ok
[22:50:26] <brad_a> yes :-P
[22:50:27] <fuzzie> if you want to move anywhere :)
[22:50:32] <brad_a> and i do :)
[22:50:55] <fuzzie> but why are you trying to split them?
[22:51:17] <brad_a> im bundling all the required plugins into the mac bundle and letting the installer install optional plugins if the user chooses to the plugin dir
[22:51:24] <fuzzie> OGGReader and TTFImporter are the optional plugins, I guess
[22:51:33] <brad_a> and nullsound
[22:51:37] <brad_a> and ttf
[22:51:40] <brad_a> :-P
[22:51:44] <brad_a> sorry
[22:51:46] <fuzzie> I said TTF
[22:51:47] <brad_a> i meant png
[22:51:52] <fuzzie> is it? I forget
[22:51:57] <brad_a> dont ask how my fingers confused them
[22:52:01] <fuzzie> and NullSound is probably not optional
[22:52:02] <brad_a> yes it is optional
[22:52:10] <brad_a> and actually only recently added to the mac build :-P
[22:52:11] <fuzzie> in any case, don't exclude OGGReader unless you are building Windows builds
[22:52:24] <brad_a> i dont currently build ogg plugin why?
[22:52:31] <fuzzie> because you break mods
[22:52:44] <fuzzie> since there's still a bunch which only manage to decompress the oggs on windows
[22:52:45] <brad_a> i see. well then i should work on getting that to build
[22:53:09] <fuzzie> I think *anything* which is for mods should be in any build we're putting on sf.
[22:53:40] <brad_a> well they are in the installer but they are option (and selected by default)
[22:53:42] <fuzzie> But I guess TTFImporter can go? And I haven't seen PNG used myself.
[22:54:13] <fuzzie> well if you put a big warning "by disabling plugins, you promise not to ask for support" maybe :-p
[22:54:15] <brad_a> im really just giveing advanced users the option to not install things i guess. kinda for fun in learning how to make installer packages :-P
[22:54:19] <fuzzie> also waaaah installer packages :(
[22:54:24] <brad_a> why?
[22:54:32] <fuzzie> boo, hiss
[22:54:41] <brad_a> i like installer packages personally :)
[22:54:45] <fuzzie> why?
[22:55:09] <fuzzie> i guess i haven't seen if they're less awful on 10.7
[22:55:19] <fuzzie> but they're rather universally hated on previous releases
[22:55:28] <brad_a> i dont understand why
[22:55:43] <fuzzie> well, because the standard install model has been "drag an icon to the place you want it" for forever
[22:56:11] <brad_a> well yeah but as long as gemrb requires a cfg somewhere to run...
[22:56:13] <fuzzie> and installers make installing a right pain instead
[22:56:19] <brad_a> its not as simple as drag to install
[22:56:27] <brad_a> if you say so :-P
[22:56:27] <fuzzie> sure
[22:56:33] <fuzzie> but you can't do the config at install time anyway?
[22:56:36] <fuzzie> since you need the game paths..
[22:56:42] <brad_a> and i can give them the option of installing that 2da modifier too
[22:57:32] <brad_a> ive never heard anybody hate pkg installers beforeā€¦ european thing? :-P
[22:57:49] <fuzzie> no
[22:57:51] <fuzzie> pretty universal, seriously
[22:58:12] <brad_a> well i must live in a pocket of acceptance :-P
[22:58:18] <fuzzie> i mean, it doesn't help that historically, the only pkg installers which existed were ones that required admin access
[22:58:39] <brad_a> well everything that goes into /Applications requires adminn rights
[22:58:43] <fuzzie> so basically, pkg installer == crappy app
[22:59:30] <fuzzie> but I am a bit out of touch in the last 2 years, and I know the Mac App Store is gaining share
[22:59:42] <brad_a> well as soon as i can run gemrb without a cfg and make a simple interface to seletc the IE game and go then maybe ill nix the pkg :-P
[22:59:58] <fuzzie> well, I'm curious why you don't do that
[23:00:10] <fuzzie> I mean, just throw together a Cocoa launcher instead
[23:00:21] <fuzzie> and I figured the answer would be "because it's a huge pain"
[23:00:32] <fuzzie> not "because I am a crazy person who doesn't hate installers" :)
[23:02:45] <brad_a> i plan on it i just havent gottn around to that
[23:02:58] <brad_a> ios has absorbed me because people are actually interested in that
[23:03:20] <brad_a> 90% of the fourm traffic lately has been peolple on ios
[23:03:20] <fuzzie> yes, lots of love for the ios build, clearly :)
[23:04:08] <brad_a> so my plan is to get ini defaults to be applied so i can just pass gemrb a game path
[23:04:17] <fuzzie> well
[23:04:36] <brad_a> and to fix the cd path problems :-P
[23:04:44] <brad_a> which does work :)
[23:04:47] <fuzzie> did you get any further with that?
[23:04:57] <fuzzie> and well I still don't see why the complex solution to the cd paths problem :p
[23:05:18] <brad_a> its not really that complex imo
[23:05:49] <brad_a> just load them from ini and convert them to unix paths then transform them according to game path
[23:05:53] <fuzzie> well, the patch was
[23:05:58] <fuzzie> i don't know if you fiddled since
[23:06:01] <brad_a> yes
[23:06:20] <brad_a> its a bit better now
[23:06:29] <brad_a> and the loadini has been rewritten
[23:06:37] <brad_a> so getting those paths is easier
[23:06:56] <brad_a> i no longer rely on vars
[23:07:14] <fuzzie> oh, right, yes, that would be a nice improvement I guess :) neat
[23:07:36] <brad_a> the main obstacle is i have currently is reordering core loading
[23:07:47] <brad_a> i posted a patchfor that last night
[23:07:55] <brad_a> i jsut dont know if its a good idea
[23:08:21] <brad_a> http://dl.dropbox.com/u/13866402/iniloadorder.patch
[23:08:32] <fuzzie> yes, I saw it
[23:08:37] <fuzzie> don't understand why, though
[23:09:13] <brad_a> because i want to set cd paths from values in baldur.ini but currently baldur.ini isnt loaded till after cd paths
[23:09:24] <fuzzie> but it does more than that
[23:09:36] <fuzzie> e.g. it moves the Variables() creation down a lot
[23:10:27] <fuzzie> and the plugin stuff too
[23:10:42] <brad_a> well i do know everything was moved for a reason
[23:10:52] <fuzzie> sure, I'm just not sure I can comment without knowing why
[23:10:55] <brad_a> ie moving baldur.ini loading required loading gemrb.ini
[23:11:00] <brad_a> which required some path
[23:11:50] <fuzzie> (and of course there's a heap of things which could be fixed after you're done, like removing the default Volume settings and instead using the default settings from your new LoadINI instead)
[23:12:30] <brad_a> and variables was moved only because because i felt it unneccisary to initialize vars with those defaults if we are going to laod them from the ini so now they are set only if we are ignoring baldur.ini
[23:13:01] <fuzzie> well, I'm just a bit worried because you're suddenly making vars invalid for e.g. the plugin loads
[23:13:23] <fuzzie> which I'm not sure is something which anyone is going to reasonably expect
[23:13:24] <brad_a> ok then we can create vars earlier but then set volume later where i moved it
[23:13:51] <fuzzie> sure
[23:14:07] <fuzzie> and the video driver move is weird too
[23:14:08] <brad_a> maybe while im at it i should document our load oder along with why (ie dependancies etc)
[23:14:35] <brad_a> well i thought laoding the video driver was dependant on width and height being set
[23:14:37] <fuzzie> not that I think it's a bad idea to start it later, but it's a bit odd in this commit, that's all
[23:14:57] <fuzzie> ah, I see
[23:15:11] <fuzzie> I was rather looking at all the srand() and FileStreamPtrCount and etc stuff
[23:15:56] <fuzzie> but I see the worry - but the video driver is inited by CreateDisplay
[23:16:00] <brad_a> I havent ran into any problem with the new order yet but i only have a handful of games
[23:16:33] <fuzzie> (and that is done way later, in Interface::Run)
[23:16:49] <brad_a> ok then i guess those can go back if we want :-P
[23:17:14] <fuzzie> well, you sort of sabotage the FileStreamPtrCount stuff at least otherwise, but I don't know why it exists
[23:17:21] <fuzzie> so probably it should go anyway
[23:17:33] <brad_a> tomprince i believe mentioned something about that
[23:17:42] <fuzzie> probably trying to track leaks in a pre-valgrind world?
[23:17:49] <brad_a> maybe
[23:18:20] <brad_a> i do see what you mean tho
[23:18:48] <fuzzie> and +1 on what tomprince said, specifically the bit where all the horrible stuff was there beforehand so not your problem :)
[23:19:00] <brad_a> well yeah i only moved things :-P
[23:27:52] <CIA-41> GemRB: 03bradallred * r1b713bc293d4 10gemrb/ (100 files in 3 dirs): Mac Build: Package required plugins into the app bundle. and add a call for Loading from there prior to loading from PluginPath.
[23:35:45] <CIA-41> GemRB: 03bradallred * ref1e3c57cfff 10gemrb/ (3 files in 3 dirs): Mac build: override will now always be located in the app bundle.
[23:37:21] <CIA-41> GemRB: 03bradallred * rfae6ddc028c7 10gemrb/apple/osx/GemRB.pmdoc/ (12 files): Addendum to previous commit: forgot to remove override from installer.
[23:39:08] <brad_a> now i need to make a wiki page for the mac build
[23:45:31] <lynxlynxlynx> i need to add an ignore rule to the commit mailer :P
[23:45:47] <lynxlynxlynx> btw, what's with the cmake change two commits ago?
[23:48:01] <brad_a> im changing the data dir for mac builds so that override and guiscripts always load into the bundle
[23:55:21] --> brad_a_ has joined #gemrb
[23:55:21] <-- brad_a_ has left IRC (Client Quit)
[23:58:04] <-- brad_a has left IRC (Ping timeout: 245 seconds)