X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Ftests%2Ftest_main.c;fp=webcit%2Ftests%2Ftest_main.c;h=0000000000000000000000000000000000000000;hb=669ff8aba0ce98da1fa9787b4917969cc6fc1e25;hp=a0de76722ac67bae3bdd88ebf778ac2aba39c162;hpb=316f01d07e6e7b5f50e5b6f210ebd6098a1a4fb2;p=citadel.git diff --git a/webcit/tests/test_main.c b/webcit/tests/test_main.c deleted file mode 100644 index a0de76722..000000000 --- a/webcit/tests/test_main.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * This contains a simple multithreaded TCP server manager. It sits around - * waiting on the specified port for incoming HTTP connections. When a - * connection is established, it calls context_loop() from context_loop.c. - * - * Copyright (c) 1996-2016 by the citadel.org developers. - * This program is released under the terms of the GNU General Public License v3. - */ - -#include "../webcit.h" -#include "../webserver.h" -#include "../modules_init.h" - - -#include -#include -#include - - -CU_EXPORT void CU_automated_run_tests(void); -CU_EXPORT CU_ErrorCode CU_list_tests_to_file(void); -CU_EXPORT void CU_set_output_filename(const char* szFilenameRoot); - -extern int msock; /* master listening socket */ -extern int verbosity; /* Logging level */ -extern char static_icon_dir[PATH_MAX]; /* where should we find our mime icons */ - -int is_https = 0; /* Nonzero if I am an HTTPS service */ -int follow_xff = 0; /* Follow X-Forwarded-For: header */ -int home_specified = 0; /* did the user specify a homedir? */ -int DisableGzip = 0; -extern pthread_mutex_t SessionListMutex; -extern pthread_key_t MyConKey; - -extern void run_tests(void); -extern int ig_tcp_server(char *ip_addr, int port_number, int queue_len); -extern int ig_uds_server(char *sockpath, int queue_len); -extern void webcit_calc_dirs_n_files(int relh, const char *basedir, int home, char *webcitdir, char *relhome); - - -char socket_dir[PATH_MAX]; /* where to talk to our citadel server */ - -char *server_cookie = NULL; /* our Cookie connection to the client */ -int http_port = PORT_NUM; /* Port to listen on */ -char *ctdlhost = DEFAULT_HOST; /* our name */ -char *ctdlport = DEFAULT_PORT; /* our Port */ -int running_as_daemon = 0; /* should we deamonize on startup? */ -char wizard_filename[PATH_MAX]; - -StrBuf *Username = NULL; /* the test user... */ -StrBuf *Passvoid = NULL; /* the test user... */ - - -extern int dbg_analyze_msg; -extern int dbg_bactrace_template_errors; -extern int DumpTemplateI18NStrings; -extern StrBuf *I18nDump; -void InitTemplateCache(void); -extern int LoadTemplates; - - - -/* - * Here's where it all begins. - */ -int main(int argc, char **argv) -{ - pthread_attr_t attr; /* Thread attributes */ - int a; /* General-purpose variables */ - char tracefile[PATH_MAX]; - char ip_addr[256]="0.0.0.0"; - int relh=0; - int home=0; - int home_specified=0; - char relhome[PATH_MAX]=""; - char webcitdir[PATH_MAX] = DATADIR; - char *hdir; - const char *basedir = NULL; - char uds_listen_path[PATH_MAX]; /* listen on a unix domain socket? */ - FILE *rvfp = NULL; - - WildFireInitBacktrace(argv[0], 2); - - start_modules (); - - /* Ensure that we are linked to the correct version of libcitadel */ - if (libcitadel_version_number() < LIBCITADEL_VERSION_NUMBER) { - fprintf(stderr, " You are running libcitadel version %d\n", (libcitadel_version_number())); - fprintf(stderr, "WebCit was compiled against version %d\n", LIBCITADEL_VERSION_NUMBER); - return(1); - } - - strcpy(uds_listen_path, ""); - - /* Parse command line */ - while ((a = getopt(argc, argv, "h:i:p:t:T:B:x:U:P:cf:Z")) != EOF) - switch (a) { - case 'U': - Username = NewStrBufPlain(optarg, -1); - break; - case 'P': - Passvoid = NewStrBufPlain(optarg, -1); - break; - case 'h': - hdir = strdup(optarg); - relh=hdir[0]!='/'; - if (!relh) { - safestrncpy(webcitdir, hdir, sizeof webcitdir); - } - else { - safestrncpy(relhome, relhome, sizeof relhome); - } - /* free(hdir); TODO: SHOULD WE DO THIS? */ - home_specified = 1; - home=1; - break; - case 'B': /* deprecated */ - break; - case 'i': - safestrncpy(ip_addr, optarg, sizeof ip_addr); - break; - case 'p': - http_port = atoi(optarg); - if (http_port == 0) { - safestrncpy(uds_listen_path, optarg, sizeof uds_listen_path); - } - break; - case 't': - safestrncpy(tracefile, optarg, sizeof tracefile); - rvfp = freopen(tracefile, "w", stdout); - rvfp = freopen(tracefile, "w", stderr); - rvfp = freopen(tracefile, "r", stdin); - break; - case 'T': - LoadTemplates = atoi(optarg); - dbg_analyze_msg = (LoadTemplates && (1<<1)) != 0; - dbg_bactrace_template_errors = (LoadTemplates && (1<<2)) != 0; - break; - case 'Z': - DisableGzip = 1; - break; - case 'x': - verbosity = atoi(optarg); - break; - case 'f': - follow_xff = 1; - break; - case 'c': - server_cookie = malloc(256); - if (server_cookie != NULL) { - safestrncpy(server_cookie, - "Set-cookie: wcserver=", - 256); - if (gethostname - (&server_cookie[strlen(server_cookie)], - 200) != 0) { - syslog(2, "gethostname: %s\n", - strerror(errno)); - free(server_cookie); - } - } - break; - default: - fprintf(stderr, "usage: webcit " - "[-i ip_addr] [-p http_port] " - "[-t tracefile] [-c] [-f] " - "[-T Templatedebuglevel] " - "[-Z] [-G i18ndumpfile] " -#ifdef HAVE_OPENSSL - "[-s] [-S cipher_suites]" -#endif - "[-U Username -P Password]" - "" - "[remotehost [remoteport]]\n"); - return 1; - } - - if (optind < argc) { - ctdlhost = argv[optind]; - if (++optind < argc) - ctdlport = argv[optind]; - } - - webcit_calc_dirs_n_files(relh, basedir, home, webcitdir, relhome); - LoadIconDir(static_icon_dir); - - /* Tell 'em who's in da house */ - syslog(1, PACKAGE_STRING "\n"); - syslog(1, "Copyright (C) 1996-2009 by the Citadel development team.\n" - "This software is distributed under the terms of the " - "GNU General Public License.\n\n" - ); - - - /* initialize the International Bright Young Thing */ - - initialise_modules(); - initialize_viewdefs(); - initialize_axdefs(); - - InitTemplateCache(); - - /* Use our own prefix on tzid's generated from system tzdata */ - icaltimezone_set_tzid_prefix("/citadel.org/"); - - /* - * Set up a place to put thread-specific data. - * We only need a single pointer per thread - it points to the - * wcsession struct to which the thread is currently bound. - */ - if (pthread_key_create(&MyConKey, NULL) != 0) { - syslog(1, "Can't create TSD key: %s\n", strerror(errno)); - } - InitialiseSemaphores (); - - - /* - * Start up the housekeeping thread - */ - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - - run_tests(); - - ShutDownWebcit(); - FreeStrBuf(&Username); - FreeStrBuf(&Passvoid); - - return 0; -} - -