From: Art Cancro Date: Sat, 11 Mar 2023 23:01:01 +0000 (-0500) Subject: dav_move_or_copy_message() skeleton X-Git-Tag: v976~78 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=30663e1a2b81d50c961c071ef3086b5cf84fdb01;p=citadel.git dav_move_or_copy_message() skeleton --- diff --git a/webcit-ng/server/messages.c b/webcit-ng/server/messages.c index a45337b89..7250fe87c 100644 --- a/webcit-ng/server/messages.c +++ b/webcit-ng/server/messages.c @@ -46,6 +46,12 @@ void dav_delete_message(struct http_transaction *h, struct ctdlsession *c, long } +// DAV move or copy an object in a room. +void dav_move_or_copy_message(struct http_transaction *h, struct ctdlsession *c, long msgnum, int move_or_copy) { + do_404(h); +} + + // GET method directly on a message in a room void dav_get_message(struct http_transaction *h, struct ctdlsession *c, long msgnum) { char buf[1024]; diff --git a/webcit-ng/server/room_functions.c b/webcit-ng/server/room_functions.c index 9e7896c5e..1840c6cbf 100644 --- a/webcit-ng/server/room_functions.c +++ b/webcit-ng/server/room_functions.c @@ -300,10 +300,10 @@ void object_in_room(struct http_transaction *h, struct ctdlsession *c) { dav_put_message(h, c, unescaped_euid, msgnum); } else if (!strcasecmp(h->method, "MOVE")) { - do_404(h); // FIXME write this + dav_move_or_copy_message(h, c, msgnum, DAV_MOVE); } else if (!strcasecmp(h->method, "COPY")) { - do_404(h); // FIXME write this + dav_move_or_copy_message(h, c, msgnum, DAV_COPY); } else { do_404(h); // Got this far but the method made no sense? Bummer. diff --git a/webcit-ng/server/webcit.h b/webcit-ng/server/webcit.h index d8321b49f..e5a4f8e1f 100644 --- a/webcit-ng/server/webcit.h +++ b/webcit-ng/server/webcit.h @@ -108,6 +108,11 @@ enum { WEBSERVER_UDS }; +enum { + DAV_MOVE, + DAV_COPY +}; + #define TRACE syslog(LOG_DEBUG, "\033[3%dmCHECKPOINT: %s:%d\033[0m", ((__LINE__%6)+1), __FILE__, __LINE__) #define SLEEPING 180 // TCP connection timeout #define MAX_WORKER_THREADS 32 // Maximum number of worker threads permitted to exist @@ -147,6 +152,7 @@ void ctdl_delete_msgs(struct ctdlsession *c, long *msgnums, int num_msgs); void dav_delete_message(struct http_transaction *h, struct ctdlsession *c, long msgnum); 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 dav_move_or_copy_message(struct http_transaction *h, struct ctdlsession *c, long msgnum, int move_or_copy); ssize_t ctdl_write(struct ctdlsession *ctdl, const void *buf, size_t count); int login_to_citadel(struct ctdlsession *c, char *auth, char *resultbuf); StrBuf *ctdl_readtextmsg(struct ctdlsession *ctdl);