X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=textclient%2Fsrc%2Fcitadel.c;h=5e8cc6203e7f964d4bdff2d549a8d0f376e1f63e;hb=dc459e3c2f92adc3f9709ba04d353ffc49c26466;hp=5821df40413c8b86f7fd7e85ebf8c66a5235aa96;hpb=5a202656af01ddc9db0640e4cc7a84f5974bc2d4;p=citadel.git diff --git a/textclient/src/citadel.c b/textclient/src/citadel.c index 5821df404..5e8cc6203 100644 --- a/textclient/src/citadel.c +++ b/textclient/src/citadel.c @@ -1,15 +1,15 @@ /* * Main source module for the client program. * - * Copyright (c) 1987-2012 by the citadel.org team + * Copyright (c) 1987-2016 by the citadel.org team * - * This program is open source software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 3. + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ #include "sysdep.h" @@ -41,9 +41,7 @@ #include #include #include -#include "citadel.h" #include "citadel_ipc.h" -#include "axdefs.h" #include "routines.h" #include "routines2.h" #include "tuiconfig.h" @@ -58,7 +56,6 @@ #include "snprintf.h" #endif #include "screen.h" -#include "citadel_dirs.h" #include "ecrash.h" #include "md5.h" @@ -88,7 +85,7 @@ long uglistlsn[UGLISTLEN]; /* current read position for all the ungoto's. Not go int uglistsize = 0; char is_mail = 0; /* nonzero when we're in a mail room */ char axlevel = AxDeleted; /* access level */ -char is_room_aide = 0; /* boolean flag, 1 if room aide */ +char is_room_aide = 0; /* boolean flag, 1 if room admin */ int timescalled; int posted; unsigned userflags; @@ -1005,13 +1002,12 @@ void system_info(CtdlIPC *ipc) CtdlIPCServerInfo(ipc, buf); scr_printf("You are connected to %s (%s) @%s\n", ipc->ServInfo.nodename, ipc->ServInfo.humannode, ipc->ServInfo.fqdn); - scr_printf("running %s with text client v%.2f,\n", ipc->ServInfo.software, (float)REV_LEVEL/100); - scr_printf("server build %s,\n", ipc->ServInfo.svn_revision, (float)REV_LEVEL/100); - scr_printf("and located in %s.\n", ipc->ServInfo.site_location); - scr_printf("Connected users %d / Active users %d / Highest message #%ld\n", mrtg_users, mrtg_active_users, mrtg_himessage); - scr_printf("Server uptime: %s\n", mrtg_server_uptime); - scr_printf("Your system administrator is %s.\n", ipc->ServInfo.sysadm); - scr_printf("Copyright (C)1987-2009 by the Citadel development team\n"); + scr_printf("running %s with text client v%.2f,\n", ipc->ServInfo.software, (float)CLIENT_VERSION/100); + scr_printf("server build %s,\n", ipc->ServInfo.svn_revision, (float)CLIENT_VERSION/100); + scr_printf("and located in %s.\n", ipc->ServInfo.site_location); + scr_printf("Connected users %d / Active users %d / Highest message #%ld\n", mrtg_users, mrtg_active_users, mrtg_himessage); + scr_printf("Server uptime: %s\n", mrtg_server_uptime); + scr_printf("Your system administrator is %s.\n", ipc->ServInfo.sysadm); } /* @@ -1101,8 +1097,8 @@ void get_serv_info(CtdlIPC *ipc, char *supplied_hostname) moreprompt = ipc->ServInfo.moreprompt; /* be nice and identify ourself to the server */ - CtdlIPCIdentifySoftware(ipc, SERVER_TYPE, 0, REV_LEVEL, - (ipc->isLocal ? "local" : CITADEL), + CtdlIPCIdentifySoftware(ipc, CLIENT_TYPE, 0, CLIENT_VERSION, + (ipc->isLocal ? "local" : PACKAGE_STRING), (supplied_hostname) ? supplied_hostname : /* Look up the , in the bible if you're confused */ (locate_host(ipc, buf), buf), buf); @@ -1419,37 +1415,20 @@ int main(int argc, char **argv) #ifdef HAVE_BACKTRACE bzero(¶ms, sizeof(params)); - params.filename = file_pid_paniclog; -// panic_fd=open(file_pid_paniclog, O_APPEND|O_CREAT|O_DIRECT); - params.filep = fopen(file_pid_paniclog, "a+"); params.debugLevel = ECRASH_DEBUG_VERBOSE; params.dumpAllThreads = TRUE; params.useBacktraceSymbols = 1; -/// BuildSymbolTable(&symbol_table); -// params.symbolTable = &symbol_table; params.signals[0]=SIGSEGV; params.signals[1]=SIGILL; params.signals[2]=SIGBUS; params.signals[3]=SIGABRT; - - eCrash_Init(¶ms); #endif setIPCErrorPrintf(scr_printf); setCryptoStatusHook(statusHook); - /* Permissions sanity check - don't run citadel setuid/setgid */ - if (getuid() != geteuid()) { - scr_printf("Please do not run citadel setuid!\n"); - logoff(NULL, 3); - } else if (getgid() != getegid()) { - scr_printf("Please do not run citadel setgid!\n"); - logoff(NULL, 3); - } - - stty_ctdl(SB_SAVE); /* Store the old terminal parameters */ - load_command_set(); /* parse the citadel.rc file */ - stty_ctdl(SB_NO_INTR); /* Install the new ones */ - /* signal(SIGHUP, dropcarr);FIXME */ /* Cleanup gracefully if carrier is dropped */ + stty_ctdl(SB_SAVE); /* Store the old terminal parameters */ + load_command_set(); /* parse the citadel.rc file */ + stty_ctdl(SB_NO_INTR); /* Install the new ones */ signal(SIGPIPE, dropcarr); /* Cleanup gracefully if local conn. dropped */ signal(SIGTERM, dropcarr); /* Cleanup gracefully if terminated */ signal(SIGCONT, catch_sigcont); /* Catch SIGCONT so we can reset terminal */ @@ -1486,41 +1465,11 @@ int main(int argc, char **argv) #endif } if (!strcmp(argv[a], "-p")) { - struct stat st; - - if (chdir(CTDLDIR) < 0) { - perror("can't change to " CTDLDIR); - logoff(NULL, 3); - } - - /* - * Drop privileges if necessary. We stat - * citadel.config to get the uid/gid since it's - * guaranteed to have the uid/gid we want. - */ - if (!getuid() || !getgid()) { - if (stat(file_citadel_config, &st) < 0) { - perror("couldn't stat citadel.config"); - logoff(NULL, 3); - } - if (!getgid() && (setgid(st.st_gid) < 0)) { - perror("couldn't change gid"); - logoff(NULL, 3); - } - if (!getuid() && (setuid(st.st_uid) < 0)) { - perror("couldn't change uid"); - logoff(NULL, 3); - } - /* - scr_printf("Privileges changed to uid %d gid %d\n", - getuid(), getgid()); - */ - } + // ignore this argument when called from telnetd argc = shift(argc, argv, a, 1); } } - screen_new(); /* Get screen dimensions. First we go to a default of 80x24. * Then attempt to read the actual screen size from the terminal. @@ -1935,12 +1884,6 @@ NEWUSR: if (IsEmptyStr(rc_password)) { case 73: cli_image_upload(ipc, "_roompic_"); break; - - case 74: - snprintf(aaa, sizeof aaa, "_floorpic_|%d", curr_floor); - cli_image_upload(ipc, aaa); - break; - case 75: enternew(ipc, "roomname", aaa, 20); r = CtdlIPCChangeRoomname(ipc, aaa, bbb);