diff -urpN ./src/act_wiz.c ./new/act_wiz.c --- ./src/act_wiz.c Fri May 16 02:11:34 2003 +++ ./new/act_wiz.c Tue May 27 02:46:35 2003 @@ -1478,9 +1478,10 @@ CH_CMD(do_mstat) chprintlnf(ch, "Vnum: %ld Format: %s Race: %s Group: %d Sex: %s Room: %ld", IS_NPC(victim) ? victim->pIndexData->vnum : 0, - IS_NPC(victim) ? victim->pIndexData-> - new_format ? "new" : "old" : "pc", victim->race->name, - IS_NPC(victim) ? victim->group : 0, sex_table[victim->sex].name, + IS_NPC(victim) ? victim-> + pIndexData->new_format ? "new" : "old" : "pc", + victim->race->name, IS_NPC(victim) ? victim->group : 0, + sex_table[victim->sex].name, victim->in_room == NULL ? 0 : victim->in_room->vnum); if (IS_NPC(victim)) @@ -1936,6 +1937,23 @@ CH_CMD(do_mwhere) return; } +void set_shutdown(bool down) +{ + extern bool merc_down; + + while (auction_first != NULL) + reset_auc(auction_first, TRUE); + save_donation_pit(); + save_gquest_data(); + save_war_data(); + do_asave(NULL, "changed"); +#if !defined(NO_WEB) + if (WebUP) + shutdown_web_server(); +#endif + merc_down = down; +} + CH_CMD(do_reboo) { chprintln(ch, "If you want to REBOOT, spell it out."); @@ -1945,21 +1963,15 @@ CH_CMD(do_reboo) CH_CMD(do_reboot) { char buf[MAX_STRING_LENGTH]; - extern bool merc_down; DESCRIPTOR_DATA *d, *d_next; CHAR_DATA *vch; - if (ch->invis_level < LEVEL_HERO) + if (ch && ch->invis_level < LEVEL_HERO) { sprintf(buf, "Reboot by %s.", ch->name); do_function(ch, &do_echo, buf); } - while (auction_first != NULL) - reset_auc(auction_first, TRUE); - save_donation_pit(); - merc_down = TRUE; - save_gquest_data(); - save_war_data(); + set_shutdown(TRUE); for (d = descriptor_first; d != NULL; d = d_next) { d_next = d->next; @@ -1981,7 +1993,6 @@ CH_CMD(do_shutdow) CH_CMD(do_shutdown) { char buf[MAX_STRING_LENGTH]; - extern bool merc_down; DESCRIPTOR_DATA *d, *d_next; CHAR_DATA *vch; @@ -1989,16 +2000,11 @@ CH_CMD(do_shutdown) sprintf(buf, "Shutdown by %s.", ch->name); append_file(ch, SHUTDOWN_FILE, buf); strcat(buf, "\n\r"); - if (ch->invis_level < LEVEL_HERO) + if (ch && ch->invis_level < LEVEL_HERO) { do_function(ch, &do_echo, buf); } - while (auction_first != NULL) - reset_auc(auction_first, TRUE); - save_donation_pit(); - merc_down = TRUE; - save_gquest_data(); - save_war_data(); + set_shutdown(TRUE); for (d = descriptor_first; d != NULL; d = d_next) { d_next = d->next; @@ -4083,8 +4089,8 @@ CH_CMD(do_sockets) count++; sprintf(buf + strlen(buf), "[%3d %2d] %s@%s\n\r", d->descriptor, d->connected, - d->original ? d->original->name : d->character ? d-> - character->name : "(none)", d->host); + d->original ? d->original->name : d-> + character ? d->character->name : "(none)", d->host); } } if (count == 0) @@ -4423,15 +4429,7 @@ CH_CMD(do_copyover) /* Consider changing all saved areas here, if you use OLC */ - do_asave(NULL, "changed"); - - save_gquest_data(); - save_war_data(); - - while (auction_first != NULL) - reset_auc(auction_first, TRUE); - - save_donation_pit(); + set_shutdown(FALSE); sprintf(buf, "\n\r *** COPYOVER by %s - please remain seated!\n\r", ch ? ch->name : "System"); @@ -4482,10 +4480,6 @@ CH_CMD(do_copyover) /* Close reserve and other always-open files and release other resources */ fclose(fpReserve); - -#if !defined(NO_WEB) - shutdown_web_server(); -#endif /* exec - descriptors are inherited */ diff -urpN ./src/arena.c ./new/arena.c --- ./src/arena.c Fri May 16 02:11:34 2003 +++ ./new/arena.c Tue May 27 02:46:35 2003 @@ -79,9 +79,8 @@ CH_CMD(do_arena_challenge) chprintlnf (ch, "You have already been challenged, either ACCEPT or DECLINE %s first.", - ch->pcdata->challenger ? ch->pcdata->challenger-> - name : ch->pcdata->challenged ? ch->pcdata->challenged-> - name : "!BUG!"); + ch->pcdata->challenger ? ch->pcdata->challenger->name : ch-> + pcdata->challenged ? ch->pcdata->challenged->name : "!BUG!"); return; } diff -urpN ./src/auction.c ./new/auction.c --- ./src/auction.c Fri May 16 02:11:34 2003 +++ ./new/auction.c Tue May 27 02:46:35 2003 @@ -237,9 +237,9 @@ void auction_update(void) reset_auc(auc, TRUE); } else if ((unsigned long) (!IS_OBJ_STAT(auc->item, ITEM_QUEST) - ? auc->high_bidder->gold : auc-> - high_bidder->pcdata->questpoints) < - auc->bid) + ? auc->high_bidder-> + gold : auc->high_bidder->pcdata-> + questpoints) < auc->bid) { announce(auc->high_bidder, INFO_AUCTION, "$n can't cover their stake in the auction, sale stopped."); diff -urpN ./src/clans.c ./new/clans.c --- ./src/clans.c Fri May 16 02:11:34 2003 +++ ./new/clans.c Tue May 27 02:46:35 2003 @@ -330,8 +330,8 @@ CH_CMD(do_clanadmin) { chprintlnf(ch, "%-12s %-8s %s", victim->name, position_table[victim->position].name, - victim->in_room ? victim->in_room-> - area->name : "Unknown"); + victim->in_room ? victim->in_room->area-> + name : "Unknown"); found = TRUE; } } diff -urpN ./src/comm.c ./new/comm.c --- ./src/comm.c Fri May 16 02:11:34 2003 +++ ./new/comm.c Tue May 27 02:46:35 2003 @@ -41,6 +41,9 @@ * -- Furey 26 Jan 1993 */ +#if !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif #include <sys/types.h> #if !defined(WIN32) #include <sys/time.h> @@ -55,11 +58,7 @@ #include <ctype.h> #include <errno.h> #include <stdio.h> -#define __USE_GNU /* for strsignal() */ -#define _GNU_SOURCE #include <string.h> -#undef __USE_GNU -#undef _GNU_SOURCE #include <stdlib.h> #include <time.h> #include <stdarg.h> /* chprintf */ @@ -90,10 +89,11 @@ bool god; /* All new chars are gods bool merc_down; /* Shutdown */ char str_boot_time[MAX_INPUT_LENGTH]; /* Needs to be global because of do_copyover */ -int port, control; +int control; /* Global variable */ -#if !defined(WIN32) && !defined(__CYGWIN__) -volatile sig_atomic_t crashed = 0; /* Are we currently crashing? */ +#if defined(WIN32) || defined(__CYGWIN__) +#define NO_VTIMER +#else struct itimerval vtimer; #endif @@ -101,13 +101,15 @@ struct itimerval vtimer; #define WOULD_HAVE_BLOCKED ( WSAGetLastError() == WSAEWOULDBLOCK ) #else #define WOULD_HAVE_BLOCKED ( errno == EWOULDBLOCK ) +volatile sig_atomic_t crashed = 0; /* Are we currently crashing? */ +void halt_mud args((int sig)); +void set_shutdown args((bool down)); #endif void game_loop args((int ctrl)); int init_socket args((int prt)); void init_descriptor args((int ctrl)); bool read_from_descriptor args((DESCRIPTOR_DATA * d)); -void halt_mud args((int sig)); /* * Other local functions (OS-independent). @@ -123,9 +125,8 @@ void save_helps args((void)); void set_vtimer(long sec) { -#if !defined(WIN32) && !defined(__CYGWIN__) -#define DEFAULT_VTIMER (60 * 60 * 3) // 3 minutes - vtimer.it_value.tv_sec = sec == -1 ? DEFAULT_VTIMER : sec; +#if !defined(NO_VTIMER) + vtimer.it_value.tv_sec = sec < 0 ? (60 * 3) : sec; vtimer.it_value.tv_usec = 0; if (setitimer(ITIMER_VIRTUAL, &vtimer, NULL) < 0) @@ -137,10 +138,10 @@ void set_vtimer(long sec) } #if !defined(WIN32) -#if !defined(__CYGWIN__) void sigvalarm(int sig) { +#if !defined(NO_VTIMER) static int safe_check = 0; char crash_message_a[] = "The mud has been looping for the past 60 seconds."; @@ -174,32 +175,28 @@ void sigvalarm(int sig) halt_mud(sig); // Shouldn't return exit(1); // Last resort -} - -// Stop an endless loop -static void sigalrm(int sig) -{ +#else static int attempt = 0; time_t ptm; time(&ptm); log_string("TOCK!"); - if ((ptm - current_time) > 200 || crashed) + if ((ptm - current_time) > 120 || crashed) { if (attempt != 1) { - attempt = 1; // Try to reboot once... - + attempt = 1; halt_mud(sig); // Should NOT return } - raise(SIGSEGV); // Something's wrong, cause a crash exit(0); } + alarm(60); +#endif } -struct sigaction halt_action, ignore_action, alarm_action, valarm_action; +struct sigaction halt_action, ignore_action, valarm_action; struct signal_type { @@ -224,8 +221,11 @@ const struct signal_type signal_table[] {SIGSEGV, &halt_action, "SIGSEGV", "Invalid memory reference"}, {SIGTERM, &halt_action, "SIGTERM", "Termination signal"}, {SIGBUS, &halt_action, "SIGBUS", "Bus error (bad memory access)"}, - {SIGALRM, &alarm_action, "SIGALRM", "Timer signal from alarm(2)"}, +#if !defined(NO_VTIMER) {SIGVTALRM, &valarm_action, "SIGVTALRM", "Virtual alarm clock"}, +#else + {SIGALRM, &valarm_action, "SIGALRM", "Timer signal from alarm(2)"}, +#endif {-1, NULL, NULL, NULL} }; @@ -235,16 +235,12 @@ void set_signals(void) halt_action.sa_handler = halt_mud; sigemptyset(&halt_action.sa_mask); - halt_action.sa_flags = SA_NOMASK; + halt_action.sa_flags = SA_NODEFER; ignore_action.sa_handler = SIG_IGN; sigemptyset(&ignore_action.sa_mask); ignore_action.sa_flags = 0; - alarm_action.sa_handler = sigalrm; - sigemptyset(&alarm_action.sa_mask); - alarm_action.sa_flags = SA_NOMASK; - valarm_action.sa_handler = sigvalarm; sigemptyset(&valarm_action.sa_mask); valarm_action.sa_flags = SA_NODEFER; @@ -252,12 +248,15 @@ void set_signals(void) for (i = 0; signal_table[i].signum != -1; i++) sigaction(signal_table[i].signum, signal_table[i].act, NULL); +#if !defined(NO_VTIMER) vtimer.it_interval.tv_sec = 60; vtimer.it_interval.tv_usec = 0; set_vtimer(-1); +#else + alarm(60); +#endif } -#endif #else void gettimeofday(struct timeval *t, void *tz) { @@ -271,8 +270,10 @@ void gettimeofday(struct timeval *t, voi int main(int argc, char **argv) { struct timeval now_time; -#if !defined(WIN32) && !defined(__CYGWIN__) +#if !defined(WIN32) +#if !defined(__CYGWIN__) bool fCopyOver = FALSE; +#endif set_signals(); #endif @@ -285,10 +286,15 @@ int main(int argc, char **argv) current_time = (time_t) now_time.tv_sec; strcpy(str_boot_time, str_time(current_time, -1, NULL)); + if (gethostname(HOSTNAME, 1024) == -1) + perror("gethostname"); + if (HOSTNAME[0] == '\0') + strcpy(HOSTNAME, "localhost"); + /* * Reserve one channel for our use. */ - if ((fpReserve = file_open(NULL_FILE, "r")) == NULL) + if ((fpReserve = fopen(NULL_FILE, "r")) == NULL) { perror(NULL_FILE); exit(1); @@ -373,7 +379,8 @@ int main(int argc, char **argv) #endif game_loop(control); #if !defined(NO_WEB) - shutdown_web_server(); + if (WebUP) + shutdown_web_server(); #endif close(control); @@ -534,12 +541,10 @@ void WaitForPulse() void game_loop(int ctrl) { static struct timeval null_time = { 0, 0 }; +#if !defined(NO_VTIMER) int vt_set = 0; - -#if !defined(WIN32) - signal(SIGPIPE, SIG_IGN); - signal(SIGCHLD, SIG_IGN); #endif + SynchronizeClock(); /* Main loop */ @@ -637,8 +642,10 @@ void game_loop(int ctrl) d->fcommand = TRUE; stop_idling(d->character); +#if !defined(NO_VTIMER) vt_set = 0; set_vtimer(60); +#endif /* OLC */ if (d->showstr_point) @@ -712,12 +719,14 @@ void game_loop(int ctrl) */ WaitForPulse(); SynchronizeClock(); +#if !defined(NO_VTIMER) if (++vt_set >= 35) { vt_set = 0; set_vtimer(60); } +#endif } return; @@ -1689,8 +1698,8 @@ void bust_a_prompt(CHAR_DATA * ch) ((!IS_NPC(ch) && IS_SET(ch->act, PLR_HOLYLIGHT)) || (!IS_AFFECTED(ch, AFF_BLIND) && - !room_is_dark(ch->in_room))) ? ch-> - in_room->name : "darkness"); + !room_is_dark(ch->in_room))) ? ch->in_room-> + name : "darkness"); else sprintf(buf2, " "); i = buf2; @@ -1991,8 +2000,8 @@ bool check_playing(DESCRIPTOR_DATA * d, dold->connected != CON_GET_NAME && dold->connected != CON_GET_OLD_PASSWORD && !str_cmp(name, - dold->original ? dold->original->name : dold-> - character->name)) + dold->original ? dold->original->name : dold->character-> + name)) { write_to_buffer(d, "That character is already playing.\n\r", 0); write_to_buffer(d, "Do you wish to connect anyway (Y/N)?", 0); @@ -2733,7 +2742,7 @@ void logf(char *fmt, ...) void update_last_func(DESCRIPTOR_DATA * d, const char *lstr, const char *sstr) { -#if !defined(WIN32) && !defined(__CYGWIN__) +#if !defined(WIN32) last_descriptor = d; if (lstr != NULL) strcpy(last_func_long, lstr); @@ -2742,23 +2751,29 @@ void update_last_func(DESCRIPTOR_DATA * #endif } -#if !defined(WIN32) && !defined(__CYGWIN__) +#if !defined(WIN32) + +#if !defined(__CYGWIN__) #define CORE_EXAMINE_SCRIPT "../corefiles/gdbscript" +#endif + void halt_mud(int sig) { DESCRIPTOR_DATA *d; CHAR_DATA *ch; + char message[MSL]; +#if !defined(__CYGWIN__) struct sigaction default_action; - int i; pid_t forkpid; + int i; int status; - char message[MSL]; waitpid(-1, &status, WNOHANG); if (!crashed) { +#endif crashed++; logf("GAME CRASHED (SIGNAL %d, %s).", sig, strsignal(sig)); logf("Last recored function: %s", last_func_long); @@ -2793,7 +2808,7 @@ void halt_mud(int sig) if ((sig == SIGVTALRM || sig == SIGALRM) && IS_IMMORTAL(ch)) write_to_descriptor(d, - "\n\rThe mud has been unresponsive for 60 seconds. Rebooting.\n\r", + "\n\rThe mud has been unresponsive for 2 minutes. Rebooting.\n\r", 0); write_to_descriptor(d, "\n\rThe mud has CRASHED.\007\n\r", 0); @@ -2815,6 +2830,10 @@ void halt_mud(int sig) save_char_obj(ch); } +#if defined(__CYGWIN__) + set_shutdown(TRUE); + exit(0); +#else // success - proceed with fork/copyover plan. Otherwise will go to // next section and crash with a full reboot to recover if ((forkpid = fork()) > 0) @@ -2920,6 +2939,7 @@ void halt_mud(int sig) return; raise(sig); } +#endif } #endif @@ -3003,6 +3023,9 @@ void set_game_levels(int Old, int New) CH_CMD(do_crash) { +#if defined(WIN32) + chprintln(ch, "Sorry this command isn't available under windows."); +#else if (IS_NULLSTR(argument)) { chprintln(ch, "Syntax: crash confirm - send a SIGSEGV to the mud."); @@ -3025,4 +3048,5 @@ CH_CMD(do_crash) do_crash(ch, ""); return; } +#endif } diff -urpN ./src/db2.c ./new/db2.c --- ./src/db2.c Fri May 16 02:11:34 2003 +++ ./new/db2.c Tue May 27 02:46:35 2003 @@ -34,6 +34,7 @@ #include <sys/types.h> #if !defined(WIN32) #include <sys/time.h> +#include <unistd.h> #endif #include <stdarg.h> #include "merc.h" @@ -44,6 +45,7 @@ #include "magic.h" #include "recycle.h" #include "olc.h" +#include "webserver.h" /* values for db2.c */ @@ -986,14 +988,30 @@ CH_CMD(do_memory_help) "perms Report managed memory objects in use by other modules\n\r" "freelists Report memory objects waiting to be recycled\n\r" "formats Report old format prototypes\n\r" + "stats Report machine stats\n\r" "? This message"); } +CH_CMD(do_memory_stats) +{ + chprintlnf(ch, " HostName = %s.", HOSTNAME); + chprintlnf(ch, " Port = %d.", port); +#if !defined(NO_WEB) + if (WebUP) + chprintlnf(ch, " Web Server Port = %d", WEBSERVERPORT); +#endif +#if !defined(WIN32) + chprintlnf(ch, " Current process ID is %d.", getpid()); +#endif + chprintlnf(ch, " Log All = %s.", fLogAll ? "TRUE" : "FALSE"); +} + CH_CMD(do_memory) { vinterpret(ch, argument, "perms", do_memory_perms, "heap", do_memory_heap, "freelists", do_memory_freelists, "formats", - do_memory_formats, NULL, do_memory_help); + do_memory_formats, "stats", do_memory_stats, NULL, + do_memory_help); } int strswitch(const char *arg, ...) @@ -1091,6 +1109,7 @@ bool file_close(FILE * fp) FILE_DATA *fopen_temp(const char *file) { FILE_DATA *fp; + char temp[PATH_MAX]; if (IS_NULLSTR(file)) return NULL; @@ -1101,15 +1120,12 @@ FILE_DATA *fopen_temp(const char *file) return NULL; strncpy(fp->name, file, PATH_MAX); -#if !defined(WIN32) - { - char temp[PATH_MAX]; - snprintf(temp, PATH_MAX, "%s.tmp%d", file, number_percent()); - strncpy(fp->tmp_name, temp, PATH_MAX); - } +#if !defined(WIN32) && !defined(__CYGWIN__) + snprintf(temp, PATH_MAX, "%s.tmp%d", file, number_percent()); #else - strncpy(fp->tmp_name, file, PATH_MAX); + strncpy(temp, file, PATH_MAX); #endif + strncpy(fp->tmp_name, temp, PATH_MAX); if ((fp->file = file_open(fp->tmp_name, "w")) == NULL) { file_close(fp->file); @@ -1125,7 +1141,7 @@ void fclose_temp(FILE_DATA * fp) if (fp) { file_close(fp->file); -#if !defined(WIN32) +#if !defined(WIN32) && !defined(__CYGWIN__) if (str_cmp(fp->tmp_name, fp->name)) rename(fp->tmp_name, fp->name); #endif diff -urpN ./src/fight.c ./new/fight.c --- ./src/fight.c Fri May 16 02:11:34 2003 +++ ./new/fight.c Tue May 27 02:46:36 2003 @@ -3110,8 +3110,9 @@ CH_CMD(do_flee) if ((pexit = was_in->exit[door]) == 0 || pexit->u1.to_room == NULL || IS_SET(pexit->exit_info, EX_CLOSED) || number_range(0, ch->daze) != 0 || (IS_NPC(ch) && - IS_SET(pexit->u1.to_room-> - room_flags, ROOM_NO_MOB))) + IS_SET(pexit->u1. + to_room->room_flags, + ROOM_NO_MOB))) continue; move_char(ch, door, FALSE); diff -urpN ./src/globals.h ./new/globals.h --- ./src/globals.h Fri May 16 02:11:35 2003 +++ ./new/globals.h Tue May 27 02:46:36 2003 @@ -148,4 +148,7 @@ GLOBAL(SOCIAL_DATA * social_hash[27]); GLOBAL_DEF(CMD_DATA * cmd_first_sorted, NULL); +GLOBAL_DEF(int port, 0); +GLOBAL(char HOSTNAME[1024]); + #endif diff -urpN ./src/handler.c ./new/handler.c --- ./src/handler.c Fri May 16 02:11:35 2003 +++ ./new/handler.c Tue May 27 02:46:36 2003 @@ -2512,8 +2512,8 @@ bool can_see(CHAR_DATA * ch, CHAR_DATA * victim->in_room && IS_SET - (victim-> - in_room->room_flags, + (victim->in_room-> + room_flags, ROOM_ARENA))) return TRUE; @@ -2690,7 +2690,7 @@ const char *high_level_name(int level, b static char buf[MSL]; const char *imm_long[MAX_LEVEL - MAX_MORTAL_LEVEL] = { "AVATAR", "ANGEL", "DEMI", "IMMORTAL", "GOD", "DEITY", "SUPREME", - "CREATOR", "IMPLEMENTOR" + "CREATOR", "IMPLEMENTOR" }; const char *imm_short[MAX_LEVEL - MAX_MORTAL_LEVEL] = { "AVA", "ANG", "DEM", "IMM", "GOD", "DEI", "SUP", "CRE", "IMP" }; diff -urpN ./src/magic.c ./new/magic.c --- ./src/magic.c Fri May 16 02:11:35 2003 +++ ./new/magic.c Tue May 27 02:46:36 2003 @@ -286,8 +286,8 @@ CH_CMD(do_cast) if ((sn = find_spell(ch, arg1)) < 1 || skill_table[sn].spell_fun == spell_null || (!IS_NPC(ch) && (!can_use_skpell(ch, sn) - || ch-> - pcdata->learned[sn] == 0))) + || ch->pcdata-> + learned[sn] == 0))) { chprintln(ch, "You don't know any spells of that name."); return; @@ -2788,7 +2788,9 @@ MAGIC(spell_gate) || IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL) || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) || (IS_NPC(victim) && is_gqmob(NULL, - victim->pIndexData->vnum) + victim-> + pIndexData-> + vnum) != -1) || (IS_NPC(victim) && IS_QUESTOR(ch) && ch->pcdata->questmob == victim->pIndexData->vnum) diff -urpN ./src/magic2.c ./new/magic2.c --- ./src/magic2.c Fri May 16 02:11:35 2003 +++ ./new/magic2.c Tue May 27 02:46:36 2003 @@ -64,9 +64,7 @@ MAGIC(spell_portal) || IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL) || IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) || (IS_NPC(victim) && is_gqmob(NULL, - victim-> - pIndexData-> - vnum) + victim->pIndexData->vnum) != -1) || (IS_NPC(victim) && IS_QUESTOR(ch) && ch->pcdata->questmob == victim->pIndexData->vnum) @@ -125,17 +123,10 @@ MAGIC(spell_nexus) || IS_SET(to_room->room_flags, ROOM_ARENA) || IS_SET(from_room->room_flags, ROOM_ARENA) || (IS_NPC(victim) && is_gqmob(NULL, - victim-> - pIndexData-> - vnum) != - -1) || (IS_NPC(victim) - && - IS_QUESTOR(ch) - && ch->pcdata-> - questmob == - victim-> - pIndexData-> - vnum) + victim->pIndexData->vnum) + != -1) + || (IS_NPC(victim) && IS_QUESTOR(ch) + && ch->pcdata->questmob == victim->pIndexData->vnum) || victim->level >= level + 3 || (!IS_NPC(victim) && victim->level >= MAX_MORTAL_LEVEL) /* NOT trust */ || (IS_NPC(victim) && IS_SET(victim->imm_flags, IMM_SUMMON)) || (IS_NPC(victim) && saves_spell(level, victim, DAM_NONE)) diff -urpN ./src/merc.h ./new/merc.h --- ./src/merc.h Fri May 16 02:11:35 2003 +++ ./new/merc.h Tue May 27 02:46:36 2003 @@ -2121,10 +2121,10 @@ struct prog_code PROG_CODE *prev; }; -#if defined(WIN32) -#define PATH_MAX MAX_PATH -#else -#include <limits.h> +#include <limits.h> // PATH_MAX + +#if !defined(PATH_MAX) +#define PATH_MAX 512 #endif struct file_data diff -urpN ./src/mob_cmds.c ./new/mob_cmds.c --- ./src/mob_cmds.c Fri May 16 02:11:35 2003 +++ ./new/mob_cmds.c Tue May 27 02:46:36 2003 @@ -1340,8 +1340,8 @@ CH_CMD(do_mpflee) || IS_SET(pexit->exit_info, EX_CLOSED) || (IS_NPC(ch) && IS_SET - (pexit->u1. - to_room->room_flags, + (pexit->u1.to_room-> + room_flags, ROOM_NO_MOB))) continue; @@ -1792,8 +1792,8 @@ OBJ_CMD(do_oppurge) { if ((vobj = get_obj_here(NULL, - obj->in_room ? obj->in_room : obj-> - carried_by->in_room, arg))) + obj->in_room ? obj->in_room : obj->carried_by-> + in_room, arg))) { extract_obj(vobj); } @@ -2026,8 +2026,8 @@ OBJ_CMD(do_opforce) if ((victim = get_char_room(NULL, - (obj->in_room) ? obj->in_room : obj-> - carried_by->in_room, arg)) == NULL) + (obj->in_room) ? obj->in_room : obj->carried_by-> + in_room, arg)) == NULL) return; interpret(victim, argument); @@ -2119,8 +2119,8 @@ OBJ_CMD(do_opdamage) fAll = TRUE; else if ((victim = get_char_room(NULL, - obj->in_room ? obj->in_room : obj-> - carried_by->in_room, target)) == NULL) + obj->in_room ? obj->in_room : obj->carried_by-> + in_room, target)) == NULL) return; if (is_number(min)) @@ -2228,8 +2228,8 @@ OBJ_CMD(do_opcall) if (!IS_NULLSTR(arg)) vch = get_char_room(NULL, - obj->in_room ? obj->in_room : obj-> - carried_by->in_room, arg); + obj->in_room ? obj->in_room : obj->carried_by-> + in_room, arg); argument = one_argument(argument, arg); if (!IS_NULLSTR(arg)) obj1 = @@ -2355,8 +2355,8 @@ OBJ_CMD(do_opattrib) } else if ((ch = get_char_room(NULL, - obj->in_room ? obj->in_room : obj-> - carried_by->in_room, target)) == NULL) + obj->in_room ? obj->in_room : obj->carried_by-> + in_room, target)) == NULL) return; if (!str_cmp(arg1, "none")) diff -urpN ./src/mob_prog.c ./new/mob_prog.c --- ./src/mob_prog.c Fri May 16 02:11:35 2003 +++ ./new/mob_prog.c Tue May 27 02:46:36 2003 @@ -296,8 +296,8 @@ int count_people_room(CHAR_DATA * mob, O || (iFlag == 2 && IS_NPC(vch)) || (iFlag == 3 && IS_NPC(mob) && IS_NPC(vch) - && mob-> - pIndexData->vnum == + && mob->pIndexData-> + vnum == vch->pIndexData->vnum) || (iFlag == 4 && is_same_group(mob, vch))) && can_see(mob, vch)) @@ -1033,8 +1033,8 @@ int cmd_eval_obj(vnum_t vnum, const char else if (lval_obj != NULL && (lval_obj->in_room != NULL || lval_obj->carried_by != NULL)) lval = - lval_obj->in_room ? lval_obj->in_room->vnum : lval_obj-> - carried_by->in_room->vnum; + lval_obj->in_room ? lval_obj->in_room-> + vnum : lval_obj->carried_by->in_room->vnum; break; case CHK_SEX: if (lval_char != NULL) @@ -1349,8 +1349,8 @@ int cmd_eval_room(vnum_t vnum, const cha else if (lval_obj != NULL && (lval_obj->in_room != NULL || lval_obj->carried_by != NULL)) lval = - lval_obj->in_room ? lval_obj->in_room->vnum : lval_obj-> - carried_by->in_room->vnum; + lval_obj->in_room ? lval_obj->in_room-> + vnum : lval_obj->carried_by->in_room->vnum; break; case CHK_SEX: if (lval_char != NULL) @@ -1459,8 +1459,8 @@ void expand_arg_mob(char *buf, const cha case 'N': i = (ch != NULL && can_see(mob, - ch)) ? (IS_NPC(ch) ? ch->short_descr : ch-> - name) : someone; + ch)) ? (IS_NPC(ch) ? ch-> + short_descr : ch->name) : someone; break; case 't': i = someone; @@ -1473,8 +1473,8 @@ void expand_arg_mob(char *buf, const cha case 'T': i = (vch != NULL && can_see(mob, - vch)) ? (IS_NPC(vch) ? vch->short_descr : vch-> - name) : someone; + vch)) ? (IS_NPC(vch) ? vch-> + short_descr : vch->name) : someone; break; case 'r': if (rch == NULL) @@ -1491,8 +1491,8 @@ void expand_arg_mob(char *buf, const cha rch = get_random_char(mob, NULL, NULL); i = (rch != NULL && can_see(mob, - rch)) ? (IS_NPC(ch) ? ch->short_descr : ch-> - name) : someone; + rch)) ? (IS_NPC(ch) ? ch-> + short_descr : ch->name) : someone; break; case 'q': i = someone; @@ -1506,10 +1506,10 @@ void expand_arg_mob(char *buf, const cha i = (mob->mprog_target != NULL && can_see(mob, mob->mprog_target)) ? (IS_NPC(mob->mprog_target) ? + mob-> + mprog_target->short_descr : mob->mprog_target-> - short_descr : mob-> - mprog_target->name) : - someone; + name) : someone; break; case 'j': i = he_she[URANGE(0, mob->sex, 2)]; @@ -1531,9 +1531,7 @@ void expand_arg_mob(char *buf, const cha case 'X': i = (mob->mprog_target != NULL && can_see(mob, mob->mprog_target)) ? he_she[URANGE(0, - mob-> - mprog_target-> - sex, + mob->mprog_target->sex, 2)] : someone; break; @@ -1560,9 +1558,7 @@ void expand_arg_mob(char *buf, const cha case 'Y': i = (mob->mprog_target != NULL && can_see(mob, mob->mprog_target)) ? him_her[URANGE(0, - mob-> - mprog_target-> - sex, + mob->mprog_target->sex, 2)] : someone; break; @@ -1589,9 +1585,7 @@ void expand_arg_mob(char *buf, const cha case 'Z': i = (mob->mprog_target != NULL && can_see(mob, mob->mprog_target)) ? his_her[URANGE(0, - mob-> - mprog_target-> - sex, + mob->mprog_target->sex, 2)] : someones; break; @@ -1757,14 +1751,13 @@ void expand_arg_other(char *buf, const c case 'Q': i = (obj && obj->oprog_target != - NULL) ? (IS_NPC(obj->oprog_target) ? obj->oprog_target-> - short_descr : obj->oprog_target->name) : (room - && room-> - rprog_target - != - NULL) - ? (IS_NPC(room->rprog_target) ? room->rprog_target-> - short_descr : room->rprog_target->name) : someone; + NULL) ? (IS_NPC(obj->oprog_target) ? obj-> + oprog_target->short_descr : obj->oprog_target-> + name) : (room + && room->rprog_target != + NULL) ? (IS_NPC(room->rprog_target) ? room-> + rprog_target->short_descr : room-> + rprog_target->name) : someone; break; case 'j': bug("Obj/room received case 'j'", 0); @@ -1782,15 +1775,13 @@ void expand_arg_other(char *buf, const c case 'X': i = (obj && obj->oprog_target != NULL) ? he_she[URANGE(0, - obj-> - oprog_target-> - sex, 2)] : (room - && - room-> - rprog_target - != - NULL) - ? he_she[URANGE(0, room->rprog_target->sex, 2)] : someone; + obj->oprog_target->sex, + 2)] : (room + && + room->rprog_target + != + NULL) ? + he_she[URANGE(0, room->rprog_target->sex, 2)] : someone; break; case 'k': bug("received case 'k'.", 0); @@ -1812,15 +1803,13 @@ void expand_arg_other(char *buf, const c case 'Y': i = (obj && obj->oprog_target != NULL) ? him_her[URANGE(0, - obj-> - oprog_target-> - sex, 2)] : (room - && - room-> - rprog_target - != - NULL) - ? him_her[URANGE(0, room->rprog_target->sex, 2)] : someone; + obj->oprog_target->sex, + 2)] : (room + && + room->rprog_target + != + NULL) ? + him_her[URANGE(0, room->rprog_target->sex, 2)] : someone; break; case 'l': bug("received case 'l'.", 0); @@ -1842,15 +1831,13 @@ void expand_arg_other(char *buf, const c case 'Z': i = (obj && obj->oprog_target != NULL) ? his_her[URANGE(0, - obj-> - oprog_target-> - sex, 2)] : (room - && - room-> - rprog_target - != - NULL) - ? his_her[URANGE(0, room->rprog_target->sex, 2)] : someones; + obj->oprog_target->sex, + 2)] : (room + && + room->rprog_target + != + NULL) ? + his_her[URANGE(0, room->rprog_target->sex, 2)] : someones; break; case 'o': i = something; diff -urpN ./src/nanny.c ./new/nanny.c --- ./src/nanny.c Fri May 16 02:11:35 2003 +++ ./new/nanny.c Tue May 27 02:46:36 2003 @@ -218,8 +218,8 @@ void handle_con_break_connect(DESCRIPTOR if (str_cmp (ch->name, - d_old->original ? d_old->original->name : d_old->character-> - name)) + d_old->original ? d_old->original->name : d_old-> + character->name)) continue; close_socket(d_old); diff -urpN ./src/olc.h ./new/olc.h --- ./src/olc.h Fri May 16 02:11:35 2003 +++ ./new/olc.h Tue May 27 02:46:36 2003 @@ -51,17 +51,17 @@ * It is displayed in the game by typing 'version' while editing. * Do not remove these from the code - by request of Jason Dinkel */ -#define VERSION "ILAB Online Creation [Beta 1.0, ROM 2.3 modified]\n\r" \ +#define OLC_VERSION "ILAB Online Creation [Beta 1.0, ROM 2.3 modified]\n\r" \ " Port a ROM 2.4 v1.8\n\r" -#define AUTHOR " By Jason(jdinkel@mines.colorado.edu)\n\r" \ +#define OLC_AUTHOR " By Jason(jdinkel@mines.colorado.edu)\n\r" \ " Modified for use with ROM 2.3\n\r" \ " By Hans Birkeland (hansbi@ifi.uio.no)\n\r" \ " Modificado para uso en ROM 2.4b6\n\r" \ " Por Ivan Toledo (itoledo@ctcreuna.cl)\n\r" -#define DATE " (Apr. 7, 1995 - ROM mod, Apr 16, 1995)\n\r" \ +#define OLC_DATE " (Apr. 7, 1995 - ROM mod, Apr 16, 1995)\n\r" \ " (Port a ROM 2.4 - Nov 2, 1996)\n\r" \ " Version actual : 1.8 - Sep 8, 1998\n\r" -#define CREDITS " Original by Surreality(cxw197@psu.edu) and Locke(locke@lm.com)" +#define OLC_CREDITS " Original by Surreality(cxw197@psu.edu) and Locke(locke@lm.com)" /* * New typedefs. diff -urpN ./src/olc_act.c ./new/olc_act.c --- ./src/olc_act.c Fri May 16 02:11:35 2003 +++ ./new/olc_act.c Tue May 27 02:46:36 2003 @@ -122,10 +122,10 @@ void unlink_mob_index(MOB_INDEX_DATA * p bool show_version(CHAR_DATA * ch, char *argument) { - chprintln(ch, VERSION); - chprintln(ch, AUTHOR); - chprintln(ch, DATE); - chprintln(ch, CREDITS); + chprintln(ch, OLC_VERSION); + chprintln(ch, OLC_AUTHOR); + chprintln(ch, OLC_DATE); + chprintln(ch, OLC_CREDITS); return FALSE; } @@ -820,9 +820,8 @@ AEDIT(aedit_show) #if 0 /* ROM OLC */ chprintlnf(ch, "Recall: [%5d] %s", pArea->recall, - get_room_index(pArea->recall) ? get_room_index(pArea-> - recall)->name : - "none"); + get_room_index(pArea->recall) ? get_room_index(pArea->recall)-> + name : "none"); #endif /* ROM */ chprintlnf(ch, "File: %s", pArea->file_name); @@ -2080,9 +2079,8 @@ void show_obj_values(CHAR_DATA * ch, OBJ "[v4] Weight Mult [%ld]", obj->value[0], flag_string(container_flags, obj->value[1]), get_obj_index(obj->value[2]) ? get_obj_index(obj->value - [2])-> - short_descr : "none", obj->value[2], obj->value[3], - obj->value[4]); + [2])->short_descr + : "none", obj->value[2], obj->value[3], obj->value[4]); break; case ITEM_DRINK_CON: diff -urpN ./src/tablesave.c ./new/tablesave.c --- ./src/tablesave.c Fri May 16 02:11:35 2003 +++ ./new/tablesave.c Tue May 27 02:46:36 2003 @@ -815,8 +815,8 @@ void save_struct(FILE * fp, void *typeba fprintf(fp, "%s\t\t", temp->field); for (i = 0; i < - (temp->argument ? (int) temp-> - argument : *(int *) temp->argument2); i++) + (temp->argument ? (int) temp->argument : *(int *) temp-> + argument2); i++) fprintf(fp, "%d ", pbool[i] == TRUE ? 1 : 0); fprintf(fp, "@\n"); break; diff -urpN ./src/webserver.c ./new/webserver.c --- ./src/webserver.c Fri May 16 02:11:35 2003 +++ ./new/webserver.c Tue May 27 02:46:36 2003 @@ -721,7 +721,7 @@ void html_colourconv(char *buffer, const const char *HTTP_URL(void) { - return FORMATF(DEFAULT_URL, WEBSERVERPORT); + return FORMATF(DEFAULT_URL, HOSTNAME, WEBSERVERPORT); } char *get_next(char *path) @@ -2345,7 +2345,7 @@ HANDLE_URL(HandleIndexRequest) { print_header(wdesc, "Welcome"); send_buf(wdesc->fd, "<P>Connect to <A href=\"" TELNET_URL "\">%s</A></P>\n", - port, MUD_NAME); + HOSTNAME, port, MUD_NAME); print_footer(wdesc); return TRUE; } diff -urpN ./src/webserver.h ./new/webserver.h --- ./src/webserver.h Fri May 16 02:11:35 2003 +++ ./new/webserver.h Tue May 27 02:46:36 2003 @@ -29,14 +29,17 @@ /* Modded for 1stMUD by Markanth 14/05/2003 */ +#if !defined(WEBSERVER_H) +#define WEBSERVER_H + +#if !defined(NO_WEB) + #if !defined(WIN32) #include <arpa/inet.h> #else #include "../win32/winstuff.h" #endif -#if !defined(NO_WEB) - #define DOCTYPE "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n" /* @@ -51,16 +54,14 @@ #define AUTH_DOMAIN "Staff Area - Username and Password are CASE SENSITIVE." /* Secure Area Description */ #define MAXDATA 1024 -#define DEFAULT_URL "http://localhost:%d/" // CHANGE THIS TO YOUR SERVER ADDRESS - -#define TELNET_URL "telnet://localhost:%d/" // CHANGE THIS TO YOUR SEVER ADDRESS +#define DEFAULT_URL "http://%s:%d/" +#define TELNET_URL "telnet://%s:%d/" #define WEBSERVERPORT (port + 5) // port the web server will run on #define MUD_NAME "1stMUD" // You mud's name here extern bool WebUP; -extern int port; /* HTTP Basic Auth req. Base64 encoded/decode */ void Base64Decode(char *bufcoded, unsigned char *bufplain, int outbufsize); @@ -106,4 +107,5 @@ bool init_web_server(void); void update_web_server(void); void shutdown_web_server(void); +#endif #endif