time_t room_mtime; // Timestampt of the most recent write activity in this room
};
+struct uploaded_file { // things that have been uploaded to the server (such as email attachments)
+ char id[10];
+ char filename[256];
+ char content_type[256];
+ long length;
+ FILE *fp;
+};
+
extern char *ssl_cipher_list;
extern int is_https; // nonzero if we are an HTTPS server today
extern char *ctdl_dir; // directory where Citadel Server is running
void perform_request(struct http_transaction *);
void do_204(struct http_transaction *);
void do_404(struct http_transaction *);
+void do_405(struct http_transaction *);
void do_412(struct http_transaction *);
void do_502(struct http_transaction *);
void output_static(struct http_transaction *);
void ctdl_f(struct http_transaction *, struct ctdlsession *);
void ctdl_r(struct http_transaction *, struct ctdlsession *);
void ctdl_u(struct http_transaction *, struct ctdlsession *);
+void ctdl_p(struct http_transaction *, struct ctdlsession *);
struct ctdlsession *connect_to_citadel(struct http_transaction *);
void disconnect_from_citadel(struct ctdlsession *);
char *header_val(struct http_transaction *h, char *requested_header);
int webcit_tcp_server(const char *ip_addr, int port_number, int queue_len);
void UrlizeText(StrBuf* Target, StrBuf *Source, StrBuf *WrkBuf);
void json_render_one_message(struct http_transaction *h, struct ctdlsession *c, long msgnum);
+void upload_files(struct http_transaction *h, struct ctdlsession *c);