|
1. Need help
|
|
Fri Mar 9, 2007 [9:00 AM]
|
Merkaba
Email not supplied
member since: May 2, 2005
|
Reply
|
|
This is probably something stupid and obvious BUT
I'm using cygwin, and my code compiles fine and with no errors (using about 3 different codebases, mindcloud2.5b, circle3.5, and smaugFUSS) and it's all dandy except for this.
When I copyover, the mud no longer accepts input or something, I cannot enter any commands or connect if I disconnect. The hint system in mindcloud still shows me hints (which is weird) but I can't do anything.
Thanks in advance.
|
|
|
The following line is true.
The above line is false.
|
|
2. RE: Need help
|
|
Fri Mar 9, 2007 [10:46 PM]
|
mann_jess
Email not supplied
member since: Dec 10, 2005
|
In Reply To
Reply
|
|
As I'm not familiar with that codebase, I'm only responding because no one else has. That said, the first thing I'd do would be to check the validity of your connection objects. Print out all the information you have about connections *before* the copyover, and then again *after*, and compare the two printouts. If you see any differences, that's likely your problem... so figure out why it's changing.
Secondly, run through the code and select chunks to execute at a given time, entering input through every chunk until a chunk doesn't work anymore. This will require some extra connection states (modification to main .h file), and modification to your connection handler function (nanny in Diku, for example), but it'll tell you exactly where the problem is.
If your connection objects are both valid and identical before and after the copyover, and the second approach doesn't work for some unexplainable reason, then I have no idea where to go from there. I would have to have more familiarity with what you're trying to do, which sadly I don't.
Honestly though, it sounds like your socket object is corrupted. Whatever piece of your code receives connection requests, adds them to the connection list, and processes input should be looked over to ensure validity. I'm not sure what would be causing the corruption though.
Best of Luck, -Jess
(Comment added by mann_jess on Sat Mar 10 0:50:24 2007)
If you've run all three of the aforementioned codebases and encountered this problem in each instance, then it sounds like cygwin is the cause of the corruption. The reason I can't help more is because I've personally never used cygwin. That said, if no one else responds here, perhaps try looking for a cygwin forum, and post exactly what copyover does to retain active connections, to see if anyone there can help. You'll need to be specific there, however, if you want any responses.
Best of Luck, -Jess
|
|
|
|
|
3. RE: Need help
|
|
Sat Mar 10, 2007 [9:47 AM]
|
Parnassus
Email not supplied
member since: Oct 10, 2001
|
In Reply To
Reply
|
|
I asked a similar question to the Smaug mailing list a few years ago. At that time, I was told that Windows doesn't process copyovers. Apparently, all the copyover codes snippets worked on linux only. I don't know if this was true than and if its still true now, but this may be the problem. I know that Dead Souls has a system that works on Windows, through Cygwin, where changes are immediately written into the code and the changes are automatic. However, I don't think thats the same as copyover which recompiles the code.
My suggestion? Forget copyovers. Reboot the mud.
|
|
|
|
|
4. RE: Need help
|
|
Sat Mar 10, 2007 [11:36 PM]
|
Tyche
Email not supplied
member since: Apr 4, 2000
|
In Reply To
Reply
|
|
Well I downloaded Circle 3.5 and compiled it on Cygwin. I had no problems doing a copyover.
|
|
|
|
|
5. RE: Need help
|
|
Sun Mar 11, 2007 [12:11 AM]
|
Schlittzer
schlittk@unbc.ca
member since:
|
In Reply To
Reply
|
|
I had also no problems doing a copyover, but I did have problems recompiling with the binary still running.
So what good is copyover? You can reboot the MUD without shutting it down! You just can't recompile the binary during a copyover. Oh well...
Bal-
|
|
|
|
|
6. RE: Need help
|
|
Sun Mar 11, 2007 [1:30 AM]
|
Tyche
Email not supplied
member since: Apr 4, 2000
|
In Reply To
Reply
|
I had also no problems doing a copyover, but I did have problems recompiling with the binary still running.
So what good is copyover? You can reboot the MUD without shutting it down! You just can't recompile the binary during a copyover. Oh well...Sure you can. Just add two lines to the Makefile. $(BINDIR)/circle : $(OBJFILES)
@-rm $(BINDIR)/circleold.exe
@-mv $(BINDIR)/circle.exe $(BINDIR)/circleold.exe
$(CC) -o $(BINDIR)/circle $(PROFILE) $(OBJFILES) $(LIBS)
|
|
|
|
|
7. RE: Need help
|
|
Sat Mar 24, 2007 [3:30 PM]
|
Schlittzer
schlittk@unbc.ca
member since:
|
In Reply To
Reply
|
|
I try : $(BINDIR)/circle : $(OBJFILES) @-rm $(BINDIR)/circleold.exe @-mv $(BINDIR)/circle.exe $(BINDIR)/circleold.exe $(CC) -o $(BINDIR)/circle $(PROFILE) (OBJFILES) $(LIBS)
and get this error:
Makefile:66: *** missing separator. Stop.
So I added '\'s after the ends of the lines, resulting in this:
$(BINDIR)/circle : $(OBJFILES) \ @-rm $(BINDIR)/circleold.exe \ @-mv $(BINDIR)/circle.exe $(BINDIR)/circleold.exe \ $(CC) -o $(BINDIR)/circle $(PROFILE) $(OBJFILES) $(LIBS)
and get these errors:
make../bin/circle make[1]: Entering directory '/home/C351/src' make[1]: *** No rule to make target '@-rm', needed by '../bin/circle'. Stop. make[1]: Leaving directory '/home/C351/src' make: *** [all] Error 2
Any corrections I should make?
|
|
|
|
|
8. RE: Need help
|
|
Sat Mar 24, 2007 [8:04 PM]
|
Tyche
Email not supplied
member since: Apr 4, 2000
|
In Reply To
Reply
|
The backlash character is used for continuation. Make uses tabs to separate command lines in the targets. The second and succeeding lines in the example are prefixed with tabs. Also if using a Windows editor, use one that preserves tabs (not Notepad). (Comment added by Tyche on Sat Mar 24 21:06:19 2007)http://www.gnu.org/software/make/manual/
|
|
|
|
|
9. RE: Need help
|
|
Sat Mar 24, 2007 [9:49 PM]
|
Schlittzer
Email not supplied
member since:
|
In Reply To
Reply
|
|
OK, I got the syntax good now, but I am getting errors still:
rm: cannot remove '../bin/circleold.exe': Permission denied make[1]: [../bin/circle] Error 1 (ignored) mv: cannot move '../bin/circle.exe' to '../bin/circleold.exe': Permission denied
|
|
|
|
|
10. RE: Need help
|
|
Sat Mar 24, 2007 [10:43 PM]
|
Tyche
Email not supplied
member since: Apr 4, 2000
|
In Reply To
Reply
|
You should get those errors on a second run of make while the mud is running. The intent of the '-' is to continue because the errors are expected. They can be safely ignored. If you don't like seeing the error messages then suppress them by redirecting the output:
@-rm $(BINDIR)/circleold.exe > /dev/null &2>1
@-mv $(BINDIR)/circle.exe $(BINDIR)/circleold.exe > /dev/null &2>1
|
|
|
|
|
11. RE: Need help
|
|
Sun Mar 25, 2007 [3:27 AM]
|
Schlittzer
Email not supplied
member since:
|
In Reply To
Reply
|
|
Right you are my good man. It works great. Thanks a million!
|
|
|
|
|