/*
* Copyright (c) 1987-2010 by the citadel.org team
*
- * This program is free software; you can redistribute it and/or modify
+ * This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
#define HTTP_TRACING 1
*/
+#define DO_DBG_QR 0
+#define DBG_QR(x) if(DO_DBG_QR) _DBG_QR(x)
+#define DBG_QR2(x) if(DO_DBG_QR) _DBG_QR2(x)
+
#ifdef HTTP_TRACING
#undef HAVE_ZLIB_H
#undef HAVE_ZLIB
#define SIZ 4096 /* generic buffer size */
-#define TRACE fprintf(stderr, "Checkpoint: %s, %d\n", __FILE__, __LINE__)
+#define TRACE fprintf(stderr, "\033[7mCheckpoint: %s, %d\033[0m\n", __FILE__, __LINE__)
#define SLEEPING 180 /* TCP connection timeout */
#define WEBCIT_TIMEOUT 900 /* WebCit session timeout */
#define PORT_NUM 2000 /* port number to listen on */
#define DEVELOPER_ID 0
#define CLIENT_ID 4
-#define CLIENT_VERSION 783 /* This version of WebCit */
-#define MINIMUM_CIT_VERSION 781 /* min required Citadel ver */
-#define LIBCITADEL_MIN 781 /* min required libcitadel ver */
+#define CLIENT_VERSION 800 /* This version of WebCit */
+#define MINIMUM_CIT_VERSION 800 /* min required Citadel ver */
+#define LIBCITADEL_MIN 800 /* min required libcitadel ver */
#define DEFAULT_HOST "localhost" /* Default Citadel server */
#define DEFAULT_PORT "504"
#define TARGET "webcit01" /* Target for inline URL's */
-
+#define SRV_STATUS_MSG(ServerLineBuf) (ChrPtr(ServerLineBuf) + 4), (StrLength(ServerLineBuf) - 4)
#define MAJORCODE(a) (((int)(a / 100) ) * 100)
#define LISTING_FOLLOWS 100
typedef struct _serv_info {
int serv_pid; /* Process ID of the Citadel server */
StrBuf *serv_nodename; /* Node name of the Citadel server */
- StrBuf *serv_humannode; /* human readable node name of the Citadel server */
- StrBuf *serv_fqdn; /* fully quallified Domain Name (such as uncensored.citadel.org) */
- StrBuf *serv_software; /* What version does our connected citadel server use */
- int serv_rev_level; /* Whats the citadel server revision */
+ StrBuf *serv_humannode; /* Juman readable node name of the Citadel server */
+ StrBuf *serv_fqdn; /* Fully qualified Domain Name (such as uncensored.citadel.org) */
+ StrBuf *serv_software; /* Free form text description of the server software in use */
+ int serv_rev_level; /* Server version number (times 100) */
StrBuf *serv_bbs_city; /* Geographic location of the Citadel server */
StrBuf *serv_sysadm; /* Name of system administrator */
- StrBuf *serv_moreprompt; /* Whats the commandline textprompt */
int serv_supports_ldap; /* is the server linked against an ldap tree for adresses? */
int serv_newuser_disabled; /* Has the server disabled self-service new user creation? */
StrBuf *serv_default_cal_zone; /* Default timezone for unspecified calendar items */
- int serv_supports_sieve; /* Does the server support Sieve mail filtering? */
- int serv_fulltext_enabled; /* Does the server have the full text index enabled? */
- StrBuf *serv_svn_revision; /* SVN revision of the server */
- int serv_supports_openid; /* Does the server support authentication via OpenID? */
+ int serv_supports_sieve; /* Server supports Sieve mail filtering */
+ int serv_fulltext_enabled; /* Full text index is enabled */
+ StrBuf *serv_svn_revision; /* svn or git revision of the server */
+ int serv_supports_openid; /* Server supports authentication via OpenID */
+ int serv_supports_guest; /* Server supports unauthenticated guest logins */
} ServInfo;
StrBuf *ContentType;
StrBuf *RawCookie;
StrBuf *ReqLine;
- StrBuf *http_host; /* HTTP Host: header */
StrBuf *browser_host;
StrBuf *browser_language;
StrBuf *user_agent;
long *IBSettingsVec; /* which icons should be shown / not shown? */
const StrBuf *floordiv_expanded; /* which floordiv currently expanded */
-
+/* Transcoding cache buffers; used to avoid to frequent realloc */
+ StrBuf *ConvertBuf1;
+ StrBuf *ConvertBuf2;
/* cache stuff for templates. TODO: find a smartrer way */
HashList *ServCfg; /* cache our server config for editing */
HashList *InetCfg; /* Our inet server config for editing */
ExpirePolicy Policy[maxpolicy];
+
+/* used by the blog viewer */
+ int bptlid; /* hash of thread currently being rendered */
};
MAX_SEMAPHORES
};
-
#ifndef num_parms
#define num_parms(source) num_tokens(source, '|')
#endif
extern int follow_xff;
extern int num_threads_existing;
extern int num_threads_executing;
+extern StrBuf *site_prefix;
void InitialiseSemaphores(void);
void begin_critical_section(int which_one);
void openid_manual_create(void);
void display_login(void);
void display_openids(void);
+void display_default_landing_page(void);
void do_welcome(void);
void do_logout(void);
void display_main_menu(void);
void wDumpContent(int);
+void PutRequestLocalMem(void *Data, DeleteHashDataFunc DeleteIt);
void UrlescPutStrBuf(const StrBuf *strbuf);
void StrEscPuts(const StrBuf *strbuf);
int get_time_format_cached (void);
const char *get_selected_language(void);
void display_wiki_pagelist(void);
+HashList *GetRoomListHashLKRA(StrBuf *Target, WCTemplputParams *TP);
#define DATEFMT_FULL 0
#define DATEFMT_BRIEF 1