Adding Hotboot...

Posted by Metsuro on Thu 15 Sep 2005 04:39 AM — 52 posts, 167,226 views.

USA #0
OK ya I know I'm pretty dumb, but I was wondering if it was possible to add hotboot to the smaugefuss to work within cygwin maybe? If so, how, and where could I find it and such. Yes I've look all over these boards for things and a few others but I cant find anything that might be what I'm looking for so I'm asking.
USA #1
Doesn't the current release of FUSS have hotboot installed? If you don't already have it, should be pretty easy to pull it out. Grab a copy of the snippet somewhere and pair that up with the current FUSS release. Between the two, you should be able to put it into whatever version of FUSS you presently have (assuming it has no hotboot).

Hope that helps? Maybe you can elaborate more on your situation?
Canada #2
Smaugfuss should already have hotboot installed. And it should work ok with cygwin. The problem with cygwin is that when the executable is running, you can't compile a new executable, as windows keeps it protected. There was a work around on this forum somewhere, I suggest a search.
USA #3
Really? I've had no problem compiling and hotbooting on Cygwin to add a change...
USA #4
Well I have the uhh.. 14a one from the download section of the site, dont remember the difference, but when one uses hotboot on it. Will display the world is being reshaped message and disconnect you, and then you can no longer connect until you close down cygwin and start again. And I have searched and cant find much on the subject then again I might be looking for the wrong thing, any idea what I can do? or possibly is the one aviable here out of date, if so where could I find a newer one? Thank you for the help given and any going to be given. And Zeno, you should add frog racing arenas to your mud. <.<
Canada #5
Try going to www.smaugfuss.org to get 1.6. It should compile and run cleanly, and hotboot should work no problem.

To Zeno: How do you get around the exe lock down?

[EDIT - 11 March 2008] - The Smaug FUSS site is now http://www.smaugmuds.org/
Amended on Tue 11 Mar 2008 03:32 AM by Nick Gammon
USA #6
Ok now that I have this verison, it seems it closes it and reloads everthing I guess, is that normal for the cygwin? as compared to the others that just leave it open and do it?
USA #7
What do you mean closes/re-opens? What are you doing?

Greven: I am not sure what exactly you refer to in the first place. Can you explain just so I know that I'm actually not bypassing it?
[EDIT] Hm interesting, it seems I can't bypass it. Even though I've though I did it before.
Amended on Thu 15 Sep 2005 08:45 PM by Zeno
USA #8
This here is from my cilent:
hotboot

The flow of time is halted momentarily as the world is reshaped!
--- Disconnected on Thursday, September 15, 2005, 3:09 PM ---
--- Connected for 9 seconds ---

And this here is from my cygwin after it I guess closes goes into sleep and opens up again?:
Segmentation fault (core dumped)

USA #9
I often hear that hotboot on Cygwin doesn't work. See this topic:
http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=4362

Personally I never had a problem.
USA #10
I'm using windows 98, so that might be why, to poor... or I'd learn up on linux and get that heh =P anyway I cant seem to go to mudplanet.org? where that topic said to go so, for now i'm at a loss?
USA #11
Ah, I've never tried it on 98, only XP.
[EDIT] Just tested it again to be sure. On XP with Cygwin:
hotboot

The world starts to shimmer away...

Time seems to change.

Your vision blurs back into view, and something seems different.

You shimmer back into the room!
Log: Hotboot recovery complete.


MudPlanet moved to:
http://www.mudplanet.net/
Amended on Thu 15 Sep 2005 08:45 PM by Zeno
USA #12
Greven,

When I downloaded 1.6, I made clean, gdb'd it and ran the mud in cygwin. It crashes on hotboot. It loads all the areas cleanly again, but when it tries to load my player back up, it crashes.


Thu Sep 15 17:10:40 2005 :: Initializing socket
Thu Sep 15 17:10:40 2005 :: IMC: Loading IMC2 command table...
Thu Sep 15 17:10:40 2005 :: IMC: Loading IMC2 network data...
Thu Sep 15 17:10:40 2005 :: IMC: Loading IMC2 help file...
Thu Sep 15 17:10:40 2005 :: IMC: Loading IMC2 color table...
Thu Sep 15 17:10:40 2005 :: IMC: IMC2 network data loaded. Autoconnect not set.
IMC2 will need to be connected manually.
Thu Sep 15 17:10:40 2005 :: (Name Not Set) ready at address BUBBA on port 4000.
Thu Sep 15 17:10:40 2005 :: Initiating hotboot recovery.
Thu Sep 15 17:10:40 2005 :: Loading player data for: Admin (1K)
      6 [main] smaug 2980 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
    756 [main] smaug 2980 open_stackdumpfile: Dumping stack trace to smaug.exe.s
tackdump

Program exited with code 0305400.


What's that status access violation? I tried searching for it but didn't come up with much.
USA #13
Well I seem completly retard, and it seems maybe the directions here http://forums.mudplanet.net/index.php?a=topic&t=333 may not work with 1.6 I guess? Or maybe I'm just really retarded... cause I got this...

In file included from imc.c:48:
mud.h:2871:1: "CH" redefined
In file included from mud.h:348,
from imc.c:48:
hotboot.h:26:1: this is the location of the previous definition
In file included from imc.c:48:
mud.h:4322: error: conflicting types for 'log_printf'
mud.h:4262: error: previous declaration of 'log_printf' was here
mud.h:4322: error: conflicting types for 'log_printf'
mud.h:4262: error: previous declaration of 'log_printf' was here
make[1]: *** [o/imc.o] Error 1
make: *** [all] Error 2
USA #14
It should be fine with 1.6, why are there errors in the imc file?
USA #15
Wouldn't know never opened it, not sure what I did but I guess I dont get to use the pretty hotboot
Amended on Thu 15 Sep 2005 09:32 PM by Metsuro
USA #16
Hotboot will work fine as long as you aren't trying to change the exe file. What I think everyone wants to know is:

Can you compile a new exe, with the same name, and hotboot to it under XP?

When I try while the program is running, this is what I get back, after it has gone clear to the end of the compile:

Quote:

Compiling o/update.o....
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot open output file smaug.exe: Device or r
esource busy
collect2: ld returned 1 exit status
make[1]: *** [smaug] Error 1
make: *** [all] Error 2


So I don't see how people claim to get around what XP won't allow you to get around - unless this is an NTFS vs FAT32 isue? I use NTFS.
USA #17
The post at: http://forums.mudplanet.net/index.php?a=topic&t=333

is obsolete, 2 years out of date. You need to try it with the Smaug FUSS 1.6 download available from www.smaugfuss.org
USA #18
I have that... the download, and was toying around first saw that hotboot didn't work the way I'd like tried the thing from the other page and got that error i posted
USA #19
I just downloaded the 1.6 version and tried hotboot. It didn't work for me. I made clean, started the mud, didn't mess with any files, and just tried to hotboot it. It crashes with the status access violation. It reloads everything up nicely all the way up to my character. Then it crashes. I use cygwin on xp.
Canada #20
With the current distro that now includes MCCP, hotboot will cause a crash.

The problem is that in hotboot_recover d->mccp is not created, and compressStart references it.

To fix, locate:
      CREATE( d, DESCRIPTOR_DATA, 1 );

      d->next = NULL;
      d->descriptor = desc;
      d->connected = CON_GET_NAME;
      d->outsize = 2000;
      d->idle = 0;
      d->lines = 0;
      d->scrlen = 24;
      d->newstate = 0;
      d->prevcolor = 0x08;

Change to:
      CREATE( d, DESCRIPTOR_DATA, 1 );
      CREATE( d->mccp, MCCP, 1 );
      d->next = NULL;
      d->descriptor = desc;
      d->connected = CON_GET_NAME;
      d->outsize = 2000;
      d->idle = 0;
      d->lines = 0;
      d->scrlen = 24;
      d->newstate = 0;
      d->prevcolor = 0x08;


That should fix the hotboot crashing.
USA #21
ah, beautiful.

worked great.
Canada #22
I actually came across this yesterday when I was making the MCCP instructions for SWRFUSS and I had the same problem. Easy fix though, I had just assumed that it was handled differently in the smaug version, I didn't even look at it.
USA #23
I guess I'll just give up on adding the hotboot that way *sigh*
USA #24
Well look at it this way, giving up ensures it'll never get into your code and working. Trying may be arduous at times and a P.I.T.A. until you get it working, but it beats the alternative any day. Besides, you'll probably learn things along the way, whether or not you ever end up getting hotboot working, that will be of use later.

Just my $.02 though.

USA #25
Ya but I know jack about anything, thats why I asked for help, and most of it makes no sense to me, specially when i got the error i got.
USA #26
Consider this:

Most of us here trying to help now have been through things like this before and once were as you are now. I know in my case I used to know squat about any of this stuff. Programming isn't something you pick up overnight, it requires years worth of trial and error and research and such. Everyone was a newbie at one point in time. If we all gave up upon reaching a roadblock, there would be no gurus to ask for help :)
Canada #27
To get hotboot to work for you with Smaug 1.6 FUSS, here is what you do:

1. Open the hotboot.c file in a text editor like notepad for windows or vi, emacs, or pico on *nix
2. Scroll down to the function hotboot_recover
3. Find the section of code that looks like:
      CREATE( d, DESCRIPTOR_DATA, 1 );

      d->next = NULL;
      d->descriptor = desc;
      d->connected = CON_GET_NAME;
      d->outsize = 2000;
      d->idle = 0;
      d->lines = 0;
      d->scrlen = 24;
      d->newstate = 0;
      d->prevcolor = 0x08;

4. Change it to look like
      CREATE( d, DESCRIPTOR_DATA, 1 );
      CREATE( d->mccp, MCCP, 1 );
      d->next = NULL;
      d->descriptor = desc;
      d->connected = CON_GET_NAME;
      d->outsize = 2000;
      d->idle = 0;
      d->lines = 0;
      d->scrlen = 24;
      d->newstate = 0;
      d->prevcolor = 0x08;


5. Save the file
6. Recompile
7. Start you mud, and you should be able to hotboot without a problem.
USA #28
I put that in and seem no longer able to connect to the mud at all, might be my pc, going to try a few things though
USA #29
And default port is what 4020?

this is highly annoying seems I can no longer connect to anything I start up in cygwin...
Amended on Fri 16 Sep 2005 09:31 PM by Metsuro
USA #30
Default port is 4000. It makes little sense why you cannot connect. Are you sure the process is running?
USA #31
The one I'm using is from the website and it was 4020 when I was using it earlier. But I just deleted all of it, unziped it and hit make, ./startup wait a few tried to connect, and nothing
USA #32
Like I said, is the mud process running? Use ps ux to check.
USA #33
How would I do that? and how would I know if it is?
Amended on Sat 17 Sep 2005 01:54 AM by Metsuro
USA #34
It'll be called what your exec is called, stock should be "smaug".
USA #35
$ ps ux
PID PPID PGID WINPID TTY UID STIME COMMAND
778861 1 778861 4294188435 con 840 17:25:22 /usr/bin/BASH
652965 778861 652965 4294329659 con 840 17:33:22 /usr/bin/TCSH
717861 652965 652965 4294012047 con 840 17:33:25 /HOME/KATHI/REAL/SMAUGFU
SS/SRC/SMAUG
914589 1 914589 4294052707 con 840 21:25:44 /usr/bin/BASH
970857 914589 970857 4126167951 con 840 21:26:00 /usr/bin/PS


thats what it looks like
USA #36
Looks like Smaug is running. Are you sure you're trying to connect to the right port?
USA #37
Its the same port I tried earlier, even tried 4000,3000,9000,9500 none of them work
USA #38
There should be no reason you can't connect if it's running. Double check you're using localhost and the right port.
USA #39
TCP kathi-www:1822 ip68-10-222-173.hr.hr.cox.net:4020 SYN_SENT


this is me attempting to access it but not connecting
USA #40
I just took a new stock SmaugFUSS, put it up on a server and connected fine. If it is an error, it's on Windows only. But I'm still pretty sure it's an issue on your end.
USA #41
I redownloaded the thing, installed it, opened it and tried to connect like I do every day. Its nothing I did...
USA #42
Hmm. In your ps ux list, why wasn't startup there? That's the only thing I found odd so far.
USA #43
No clue why its not there so? *shrug*
USA #44
Well, how are you starting it up?
USA #45
well since i removed it first, I just hit up make, wait till it was finished the ./startup and thats it
USA #46
Then yes, the startup script should be running, but it didn't show up on your ps?
USA #47
seems to be so
USA #48
Well i found out what was wrong and fixed it, but still chaning the thing to include the new create line and such didn't help at all either *scratch*
Canada #49
So you added the new line then, did it compile cleanly? Did you get any compile warnings or errors?
USA #50
Yeap it compiled fine, then I ran the thing started it up went to go poke around hit it and it kinda uhh stalled i guess, disconnecting me and wouldn't let me connect again
USA #51
Hey Folks....

Let me first say, that I am BRAND new to coding....I played !ack based muds for 7 years and recently switched to smaug, while searching for a code base (going to school to develop my own mmorpg and thought I would get concepts down in a mud first)

My question and response to this subject is....

Why is it so important to try and recompile the exe with the same name to do the hotboot? I got some of the same errors at others have but then I decided to just

mv smaug smaugold
make clean
make

and then everything was fine and dandy for me...I did a hotboot from within the mud, and everything loaded up perfect so far? again, I'm new, so other than possibly a large file, why should I not use that method?

and I am running cygwin on a win2k machine if that helps.