#define CM_RANGE(Message, Which) Message->cm_fields[Which], \
Message->cm_fields[Which] + Message->cm_lengths[Which]
-void CtdlSerializeMessage(struct ser_ret *, struct CtdlMessage *);
+// Serialization routines use this struct to return a pointer and a length
+struct ser_ret {
+ size_t len;
+ unsigned char *ser;
+};
+
+struct ser_ret CtdlSerializeMessage(struct CtdlMessage *);
struct CtdlMessage *CtdlDeserializeMessage(long msgnum, int with_body, const char *Buffer, long Length);
void ReplicationChecks(struct CtdlMessage *);
int CtdlSaveMsgPointersInRoom(char *roomname, long newmsgidlist[], int num_newmsgs,