remember the lengths of config strings.
[citadel.git] / citadel / modules / vcard / serv_vcard.c
index 9b49782bfcc69c051991844808ba8580cc5d2859..d143fc776e924bb87b7980b409e6efeb5f993092 100644 (file)
@@ -63,6 +63,7 @@
 #include "user_ops.h"
 #include "database.h"
 #include "msgbase.h"
+#include "room_ops.h"
 #include "internet_addressing.h"
 #include "serv_vcard.h"
 #include "citadel_ldap.h"
@@ -328,7 +329,7 @@ void vcard_extract_vcard(char *name, char *filename, char *partnum, char *disp,
  * function accordingly (delete the user's existing vCard in the config room
  * and in the global address book).
  */
-int vcard_upload_beforesave(struct CtdlMessage *msg) {
+int vcard_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) {
        struct CitContext *CCC = CC;
        char *s;
        char buf[SIZ];
@@ -374,12 +375,11 @@ int vcard_upload_beforesave(struct CtdlMessage *msg) {
 
        if (CM_IsEmpty(msg, eMesageText)) return(0);
 
-       mime_parser(msg->cm_fields[eMesageText],
-               NULL,
-               *vcard_extract_vcard,
-               NULL, NULL,
-               &v,             /* user data ptr - put the vcard here */
-               0
+       mime_parser(CM_RANGE(msg, eMesageText),
+                   *vcard_extract_vcard,
+                   NULL, NULL,
+                   &v,         /* user data ptr - put the vcard here */
+                   0
        );
 
        if (v == NULL) return(0);       /* no vCards were found in this message */
@@ -503,7 +503,7 @@ int vcard_upload_beforesave(struct CtdlMessage *msg) {
  * function accordingly (copy the vCard from the config room to the global
  * address book).
  */
-int vcard_upload_aftersave(struct CtdlMessage *msg) {
+int vcard_upload_aftersave(struct CtdlMessage *msg, recptypes *recp) {
        struct CitContext *CCC = CC;
        char *ptr;
        int linelen;
@@ -905,7 +905,7 @@ void vcard_purge(struct ctdluser *usbuf) {
        msg->cm_format_type = 0;
        CM_SetField(msg, eAuthor, usbuf->fullname, strlen(usbuf->fullname));
        CM_SetField(msg, eOriginalRoom, HKEY(ADDRESS_BOOK_ROOM));
-       CM_SetField(msg, eNodeName, NODENAME, strlen(NODENAME));
+       CM_SetField(msg, eNodeName, CFG_KEY(c_nodename));
        CM_SetField(msg, eMesageText, HKEY("Purge this vCard\n"));
 
        len = snprintf(buf, sizeof buf, VCARD_EXT_FORMAT,
@@ -1106,13 +1106,12 @@ void dvca_callback(long msgnum, void *userdata) {
 
        msg = CtdlFetchMessage(msgnum, 1);
        if (msg == NULL) return;
-       mime_parser(msg->cm_fields[eMesageText],
-               NULL,
-               *dvca_mime_callback,    /* callback function */
-               NULL, NULL,
-               NULL,                   /* user data */
-               0
-       );
+       mime_parser(CM_RANGE(msg, eMesageText),
+                   *dvca_mime_callback,        /* callback function */
+                   NULL, NULL,
+                   NULL,                       /* user data */
+                   0
+               );
        CM_Free(msg);
 }
 
@@ -1171,7 +1170,7 @@ void check_get(void) {
        
        if (strncasecmp(cmdbuf, "GET ", 4)==0)
        {
-               struct recptypes *rcpt;
+               recptypes *rcpt;
                char *argbuf = &cmdbuf[4];
                
                extract_token(internet_addr, argbuf, 0, '|', sizeof internet_addr);