From: Art Cancro Date: Fri, 22 Dec 2023 16:54:16 +0000 (-0500) Subject: moar skeleton X-Git-Tag: v997~56 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=1cf65827496ede0bed7172122acd381666211894 moar skeleton --- diff --git a/webcit-ng/server/calendar_functions.c b/webcit-ng/server/calendar_functions.c index 820de037a..73305d733 100644 --- a/webcit-ng/server/calendar_functions.c +++ b/webcit-ng/server/calendar_functions.c @@ -10,5 +10,22 @@ // Client is requesting a message list void calendar_msglist(struct http_transaction *h, struct ctdlsession *c, char *range) { + + // Begin by requesting all messages in the room + int i = 0; + Array *msglist = get_msglist(c, "ALL"); + if (msglist == NULL) { + do_404(h); + return; + } + + for (i = 0; i < array_len(msglist); ++i) { + long m; + memcpy(&m, array_get_element_at(msglist, i), sizeof(long)); + syslog(LOG_DEBUG, "FIXME %ld", m); + } + array_free(msglist); + + // FIXME we still fail because we aren't finished yet do_404(h); } diff --git a/webcit-ng/server/webcit.h b/webcit-ng/server/webcit.h index 2bcbccb15..b678ceffc 100644 --- a/webcit-ng/server/webcit.h +++ b/webcit-ng/server/webcit.h @@ -128,29 +128,23 @@ enum { #define CTDL_DIR "/usr/local/citadel" #define DEVELOPER_ID 0 #define CLIENT_ID 4 -#define TARGET "webcit02" /* Window target for inline URL's */ +#define TARGET "webcit02" // Window target for inline URL's #define ROOMNAMELEN 128 // The size of a roomname string #define DAV_MOVE 0 // MOVE=0 COPY=1 don't change these! #define DAV_COPY 1 // they are the values used in the Citadel Server MOVE command -// The prototypes below this line are generated with `cproto server/*.c >>server/webcit.h` - -/* server/admin_functions.c */ void try_login(struct http_transaction *h, struct ctdlsession *c); void logout(struct http_transaction *h, struct ctdlsession *c); void whoami(struct http_transaction *h, struct ctdlsession *c); void biff(struct http_transaction *h, struct ctdlsession *c); void ctdl_a(struct http_transaction *h, struct ctdlsession *c); -/* server/caldav_reports.c */ void caldav_xml_start(void *data, const char *el, const char **attr); void caldav_xml_end(void *data, const char *el); void caldav_xml_chardata(void *data, const XML_Char *s, int len); StrBuf *fetch_ical(struct ctdlsession *c, long msgnum); void caldav_response(struct http_transaction *h, struct ctdlsession *c, StrBuf *ReportOut, StrBuf *ThisHref); void caldav_report(struct http_transaction *h, struct ctdlsession *c); -/* server/calendar_functions.c */ void calendar_msglist(struct http_transaction *h, struct ctdlsession *c, char *range); -/* server/ctdlclient.c */ int ctdl_read_binary(struct ctdlsession *ctdl, char *buf, int bytes_requested); int ctdl_readline(struct ctdlsession *ctdl, char *buf, int maxbytes); StrBuf *ctdl_readtextmsg(struct ctdlsession *ctdl); @@ -161,25 +155,19 @@ void extract_auth(struct http_transaction *h, char *authbuf, int authbuflen); int login_to_citadel(struct ctdlsession *c, char *auth, char *resultbuf); struct ctdlsession *connect_to_citadel(struct http_transaction *h); void disconnect_from_citadel(struct ctdlsession *ctdl); -/* server/ctdl_commands.c */ void serv_info(struct http_transaction *h, struct ctdlsession *c); void ctdl_c(struct http_transaction *h, struct ctdlsession *c); -/* server/ctdlfunctions.c */ void ctdl_delete_msgs(struct ctdlsession *c, long *msgnums, int num_msgs); -/* server/floor_functions.c */ void floor_list(struct http_transaction *h, struct ctdlsession *c); void ctdl_f(struct http_transaction *h, struct ctdlsession *c); -/* server/forum_view.c */ void setup_for_forum_view(struct ctdlsession *c); JsonValue *json_tokenize_recipients(const char *Key, long keylen, char *recp); void json_render_one_message(struct http_transaction *h, struct ctdlsession *c, long msgnum); -/* server/html2html.c */ void stripquotes(char *s); void extract_charset_from_meta(char *charset, char *meta_http_equiv, char *meta_content); StrBuf *html2html(const char *supplied_charset, int treat_as_wiki, char *roomname, long msgnum, StrBuf *Source); void UrlizeText(StrBuf *Target, StrBuf *Source, StrBuf *WrkBuf); void url(char *buf, size_t bufsize); -/* server/http.c */ int client_write(struct client_handle *ch, char *buf, int nbytes); int client_read(struct client_handle *ch, char *buf, int nbytes); int client_readline(struct client_handle *ch, char *buf, int maxbytes); @@ -188,16 +176,13 @@ void add_response_header(struct http_transaction *h, char *key, char *val); void perform_one_http_transaction(struct client_handle *ch); char *header_val(struct http_transaction *h, char *requested_header); char *get_url_param(struct http_transaction *h, char *requested_param); -/* server/main.c */ int main(int argc, char **argv); -/* server/messages.c */ long locate_message_by_uid(struct ctdlsession *c, char *uid); void dav_delete_message(struct http_transaction *h, struct ctdlsession *c, long msgnum); void dav_move_or_copy_message(struct http_transaction *h, struct ctdlsession *c, long msgnum, int move_or_copy); void dav_get_message(struct http_transaction *h, struct ctdlsession *c, long msgnum); void dav_put_message(struct http_transaction *h, struct ctdlsession *c, char *euid, long old_msgnum); void download_mime_component(struct http_transaction *h, struct ctdlsession *c, long msgnum, char *partnum); -/* server/request.c */ void do_404(struct http_transaction *h); void do_405(struct http_transaction *h); void do_412(struct http_transaction *h); @@ -206,7 +191,6 @@ void do_502(struct http_transaction *h); void request_http_authenticate(struct http_transaction *h); void http_redirect(struct http_transaction *h, char *to_where); void perform_request(struct http_transaction *h); -/* server/room_functions.c */ int match_etags(char *taglist, long msgnum); void json_stat(struct http_transaction *h, struct ctdlsession *c); void json_mailbox(struct http_transaction *h, struct ctdlsession *c); @@ -221,16 +205,12 @@ void get_the_room_itself(struct http_transaction *h, struct ctdlsession *c); void the_room_itself(struct http_transaction *h, struct ctdlsession *c); void room_list(struct http_transaction *h, struct ctdlsession *c); void ctdl_r(struct http_transaction *h, struct ctdlsession *c); -/* server/static.c */ void output_static(struct http_transaction *h); -/* server/tcp_sockets.c */ int lingering_close(int fd); int webcit_tcp_server(const char *ip_addr, int port_number, int queue_len); int webcit_uds_server(char *sockpath, int queue_len); -/* server/text2html.c */ StrBuf *text2html(const char *supplied_charset, int treat_as_wiki, char *roomname, long msgnum, StrBuf *Source); StrBuf *variformat2html(StrBuf *Source); -/* server/tls.c */ void bind_to_key_and_certificate(void); void init_ssl(void); void update_key_and_cert_if_needed(void); @@ -238,7 +218,6 @@ void starttls(struct client_handle *ch); void endtls(struct client_handle *ch); int client_write_ssl(struct client_handle *ch, char *buf, int nbytes); int client_read_ssl(struct client_handle *ch, char *buf, int nbytes); -/* server/upload.c */ void upload_handler(char *name, char *filename, char *partnum, char *disp, void *content, char *cbtype, char *cbcharset, size_t length, char *encoding, char *cbid, void *userdata); void upload_files(struct http_transaction *h, struct ctdlsession *c); void ctdl_p_base(struct http_transaction *h, struct ctdlsession *c); @@ -249,17 +228,15 @@ void attachment_filter(char *name, char *filename, char *partnum, char *disp, vo void load_attachments_from_message(struct http_transaction *h, struct ctdlsession *c, char *name); void specific_upload(struct http_transaction *h, struct ctdlsession *c, char *name); void ctdl_p(struct http_transaction *h, struct ctdlsession *c); -/* server/user_functions.c */ void fetch_user_photo(struct http_transaction *h, struct ctdlsession *c, char *username); void fetch_user_bio(struct http_transaction *h, struct ctdlsession *c, char *username); void object_in_user(struct http_transaction *h, struct ctdlsession *c, char *requested_username); void the_user_itself(struct http_transaction *h, struct ctdlsession *c, char *username); void user_list(struct http_transaction *h, struct ctdlsession *c); void ctdl_u(struct http_transaction *h, struct ctdlsession *c); -/* server/util.c */ int unescape_input(char *buf); char *http_datestring(time_t xtime); -/* server/webserver.c */ void spawn_another_worker_thread(int *pointer_to_master_socket); void worker_entry(int *pointer_to_master_socket); int webserver(char *webserver_interface, int webserver_port, int webserver_protocol); +Array *get_msglist(struct ctdlsession *c, char *which_msgs);