remove typedef from struct recptypes
authorArt Cancro <ajc@citadel.org>
Thu, 4 Feb 2021 15:45:09 +0000 (10:45 -0500)
committerArt Cancro <ajc@citadel.org>
Thu, 4 Feb 2021 15:45:09 +0000 (10:45 -0500)
26 files changed:
citadel/ctdl_module.h
citadel/internet_addressing.c
citadel/internet_addressing.h
citadel/journaling.c
citadel/journaling.h
citadel/modules/blog/serv_blog.c
citadel/modules/calendar/serv_calendar.c
citadel/modules/clamav/serv_virus.c
citadel/modules/ctdlproto/serv_messages.c
citadel/modules/imap/imap_acl.c
citadel/modules/inboxrules/serv_inboxrules.c
citadel/modules/inetcfg/serv_inetcfg.c
citadel/modules/listdeliver/serv_listdeliver.c
citadel/modules/notes/serv_notes.c
citadel/modules/smtp/serv_smtp.c
citadel/modules/smtp/serv_smtpclient.c
citadel/modules/smtp/smtp_util.c
citadel/modules/spam/serv_spam.c
citadel/modules/vcard/serv_vcard.c
citadel/modules/wiki/serv_wiki.c
citadel/msgbase.c
citadel/msgbase.h
citadel/serv_extensions.c
citadel/serv_extensions.h
citadel/server.h
citadel/user_ops.c

index 8fac3261cafc2dfdfe3757446a77c38748d97d4b..9c6a90f22744fdb541c5bcb9e4122209ab30e6d9 100644 (file)
@@ -105,10 +105,8 @@ void CtdlUnregisterUserHook(void (*fcn_ptr)(struct ctdluser *), int EventType);
 void CtdlRegisterXmsgHook(int (*fcn_ptr)(char *, char *, char *, char *), int order);
 void CtdlUnregisterXmsgHook(int (*fcn_ptr)(char *, char *, char *, char *), int order);
 
-void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *, recptypes*),
-                                                       int EventType);
-void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *, recptypes *),
-                              int EventType);
+void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *, struct recptypes *), int EventType);
+void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *, struct recptypes *), int EventType);
 
 void CtdlRegisterRoomHook(int (*fcn_ptr)(struct ctdlroom *) );
 void CtdlUnregisterRoomHook(int (*fnc_ptr)(struct ctdlroom *) );
index 030291f6c6412ec2286a356e64b33f986bae71e7..6eb6de68c3ac1b57d33083701c1787da964b7892 100644 (file)
@@ -322,7 +322,7 @@ int CtdlHostAlias(char *fqdn) {
  */
 int CtdlIsMe(char *addr, int addr_buf_len)
 {
-       recptypes *recp;
+       struct recptypes *recp;
        int i;
 
        recp = validate_recipients(addr, NULL, 0);
@@ -458,9 +458,9 @@ int alias(char *name)
  *
  * Caller needs to free the result using free_recipients()
  */
-recptypes *validate_recipients(const char *supplied_recipients, const char *RemoteIdentifier, int Flags) {
+struct recptypes *validate_recipients(const char *supplied_recipients, const char *RemoteIdentifier, int Flags) {
        struct CitContext *CCC = CC;
-       recptypes *ret;
+       struct recptypes *ret;
        char *recipients = NULL;
        char *org_recp;
        char this_recp[256];
@@ -479,11 +479,11 @@ recptypes *validate_recipients(const char *supplied_recipients, const char *Remo
        int in_quotes = 0;
 
        /* Initialize */
-       ret = (recptypes *) malloc(sizeof(recptypes));
+       ret = (struct recptypes *) malloc(sizeof(struct recptypes));
        if (ret == NULL) return(NULL);
 
        /* Set all strings to null and numeric values to zero */
-       memset(ret, 0, sizeof(recptypes));
+       memset(ret, 0, sizeof(struct recptypes));
 
        if (supplied_recipients == NULL) {
                recipients = strdup("");
@@ -698,7 +698,7 @@ recptypes *validate_recipients(const char *supplied_recipients, const char *Remo
 /*
  * Destructor for recptypes
  */
-void free_recipients(recptypes *valid) {
+void free_recipients(struct recptypes *valid) {
 
        if (valid == NULL) {
                return;
index 2c9cf9e41a262940fc217cc9261792c6098b41f8..22129e464d65664f6459cebee1e13aa762288c8d 100644 (file)
@@ -2,8 +2,8 @@
 #include "server.h"
 #include "ctdl_module.h"
 
-recptypes *validate_recipients(const char *recipients, const char *RemoteIdentifier, int Flags);
-void free_recipients(recptypes *);
+struct recptypes *validate_recipients(const char *recipients, const char *RemoteIdentifier, int Flags);
+void free_recipients(struct recptypes *);
 void process_rfc822_addr(const char *rfc822, char *user, char *node, char *name);
 char *rfc822_fetch_field(const char *rfc822, const char *fieldname);
 void sanitize_truncated_recipient(char *str);
index 375589750db5e8a83e20ce94f1591409bf4e64a6..939ec3b7d685b3aab69cb38a039ae613a4616fea 100644 (file)
@@ -29,7 +29,7 @@ struct jnlq *jnlq = NULL;     /* journal queue */
  */
 void JournalBackgroundSubmit(struct CtdlMessage *msg,
                        StrBuf *saved_rfc822_version,
-                       recptypes *recps) {
+                       struct recptypes *recps) {
 
        struct jnlq *jptr = NULL;
 
@@ -45,7 +45,7 @@ void JournalBackgroundSubmit(struct CtdlMessage *msg,
                return;
        }
        memset(jptr, 0, sizeof(struct jnlq));
-       if (recps != NULL) memcpy(&jptr->recps, recps, sizeof(recptypes));
+       if (recps != NULL) memcpy(&jptr->recps, recps, sizeof(struct recptypes));
        if (!CM_IsEmpty(msg, eAuthor)) jptr->from = strdup(msg->cm_fields[eAuthor]);
        if (!CM_IsEmpty(msg, erFc822Addr)) jptr->rfca = strdup(msg->cm_fields[erFc822Addr]);
        if (!CM_IsEmpty(msg, eMsgSubject)) jptr->subj = strdup(msg->cm_fields[eMsgSubject]);
@@ -89,7 +89,7 @@ void local_to_inetemail(char *inetemail, char *localuser, size_t inetemail_len)
 void JournalRunQueueMsg(struct jnlq *jmsg) {
 
        struct CtdlMessage *journal_msg = NULL;
-       recptypes *journal_recps = NULL;
+       struct recptypes *journal_recps = NULL;
        StrBuf *message_text = NULL;
        char mime_boundary[256];
        long mblen;
@@ -142,7 +142,7 @@ void JournalRunQueueMsg(struct jnlq *jmsg) {
                                rfc822len = 0;
                        }
 
-                       message_text = NewStrBufPlain(NULL, rfc822len + sizeof(recptypes) + 1024);
+                       message_text = NewStrBufPlain(NULL, rfc822len + sizeof(struct recptypes) + 1024);
 
                        /*
                         * Here is where we begin to compose the journalized message.
index 74c79816afaf05e33123e730ff75e2b8ffce86e7..4a66781aed8e5956f1bcb8aa96080efa8e4d807e 100644 (file)
@@ -1,6 +1,6 @@
 struct jnlq {
        struct jnlq *next;
-       recptypes recps;
+       struct recptypes recps;
        char *from;
        char *node;
        char *rfca;
@@ -11,6 +11,6 @@ struct jnlq {
 
 void JournalBackgroundSubmit(struct CtdlMessage *msg,
                         StrBuf *saved_rfc822_version,
-                        recptypes *recps);
+                        struct recptypes *recps);
 void JournalRunQueueMsg(struct jnlq *jmsg);
 void JournalRunQueue(void);
index 9040d7af98c1d0384e2f06a834eceb6443813df8..98bc938d3c6113b53e2e13ff9035daee10e9ce74 100644 (file)
@@ -51,7 +51,7 @@
  * Pre-save hook for saving a message in a blog room.
  * (Do we want to only do this for top-level messages?)
  */
-int blog_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) {
+int blog_upload_beforesave(struct CtdlMessage *msg, struct recptypes *recp) {
 
        /* Only run this hook for blog rooms */
        if (CC->room.QRdefaultview != VIEW_BLOG) {
index 941806393d1a33e6b8f3a60fe7dc3562f22d2f46..55d64d9ff02e52553dec05e41c0dc3615359f5ef 100644 (file)
@@ -171,13 +171,13 @@ void ical_send_a_reply(icalcomponent *request, char *action) {
        icalproperty *summary = NULL;
        char summary_string[SIZ];
        icalproperty *me_attend = NULL;
-       recptypes *recp = NULL;
+       struct recptypes *recp = NULL;
        icalparameter *partstat = NULL;
        char *serialized_reply = NULL;
        char *reply_message_text = NULL;
        const char *ch;
        struct CtdlMessage *msg = NULL;
-       recptypes *valid = NULL;
+       struct recptypes *valid = NULL;
 
        *organizer_string = '\0';
        strcpy(summary_string, "Calendar item");
@@ -1407,7 +1407,7 @@ void ical_freebusy(char *who) {
        icalcomponent *encaps = NULL;
        icalcomponent *fb = NULL;
        int found_user = (-1);
-       recptypes *recp = NULL;
+       struct recptypes *recp = NULL;
        char buf[256];
        char host[256];
        char type[256];
@@ -1960,7 +1960,7 @@ void ical_send_out_invitations(icalcomponent *top_level_cal, icalcomponent *cal)
        icalcomponent *encaps = NULL;
        char *request_message_text = NULL;
        struct CtdlMessage *msg = NULL;
-       recptypes *valid = NULL;
+       struct recptypes *valid = NULL;
        char attendees_string[SIZ];
        int num_attendees = 0;
        char this_attendee[256];
@@ -2349,7 +2349,7 @@ void ical_obj_beforesave_backend(char *name, char *filename, char *partnum,
  * If the message is being saved, we also set various message header fields
  * using data found in the iCalendar object.
  */
-int ical_obj_beforesave(struct CtdlMessage *msg, recptypes *recp)
+int ical_obj_beforesave(struct CtdlMessage *msg, struct recptypes *recp)
 {
        /* First determine if this is a calendar or tasks room */
        if (  (CC->room.QRdefaultview != VIEW_CALENDAR)
@@ -2416,7 +2416,7 @@ void ical_obj_aftersave_backend(char *name, char *filename, char *partnum,
  * (This will start back end tasks such as automatic generation of invitations,
  * if such actions are appropriate.)
  */
-int ical_obj_aftersave(struct CtdlMessage *msg, recptypes *recp)
+int ical_obj_aftersave(struct CtdlMessage *msg, struct recptypes *recp)
 {
        char roomname[ROOMNAMELEN];
 
index 18a143060e2b946b4c9b562fa5da0cad89965456..c5599b9de95576ed4b088d42c3dfa962f2c71be9 100644 (file)
@@ -50,7 +50,7 @@
 /*
  * Connect to the clamd server and scan a message.
  */
-int clamd(struct CtdlMessage *msg, recptypes *recp) {
+int clamd(struct CtdlMessage *msg, struct recptypes *recp) {
        int sock = (-1);
        int streamsock = (-1);
        char clamhosts[SIZ];
index 6550e44211ca4d1afe078a5adcf3902215c1b3cd..022ce2b7ee47bc5b9601f112a5e5c6fb46a7f7c2 100644 (file)
@@ -409,10 +409,10 @@ void cmd_ent0(char *entargs)
        int anonymous = 0;
        char errmsg[SIZ];
        int err = 0;
-       recptypes *valid = NULL;
-       recptypes *valid_to = NULL;
-       recptypes *valid_cc = NULL;
-       recptypes *valid_bcc = NULL;
+       struct recptypes *valid = NULL;
+       struct recptypes *valid_to = NULL;
+       struct recptypes *valid_cc = NULL;
+       struct recptypes *valid_bcc = NULL;
        char subject[SIZ];
        int subject_required = 0;
        int do_confirm = 0;
index 05426de46c008417244222b63d2daf2bad300943..97b5f9630a0774f194c36c440bd3c8351a103321 100644 (file)
@@ -209,7 +209,7 @@ void imap_listrights(int num_parms, ConstStr *Params) {
        char savedroom[ROOMNAMELEN];
        int msgs, new;
        int ret;
-       recptypes *valid;
+       struct recptypes *valid;
        struct ctdluser temp;
 
        if (num_parms != 4) {
index 204b7cbc69b436c7ca5d574bbf0d5a2c41d4fb29..b7e01278f4d63cdb3975809c9bfd612ab9b1b4cb 100644 (file)
@@ -345,7 +345,7 @@ int inbox_do_redirect(struct irule *rule, long msgnum) {
                return(1);                                      // don't delete the inbox copy if this failed
        }
 
-       recptypes *valid = validate_recipients(rule->redirect_to, NULL, 0);
+       struct recptypes *valid = validate_recipients(rule->redirect_to, NULL, 0);
        if (valid == NULL) {
                syslog(LOG_WARNING, "inboxrules: inbox_do_redirect() invalid recipient <%s>", rule->redirect_to);
                return(1);                                      // don't delete the inbox copy if this failed
index 71155c8b09c4d8033f0c2869f72ad66d47e79856..814659d2833b48832a41687c7de4d940081a1fd4 100644 (file)
@@ -66,7 +66,7 @@ void inetcfg_setTo(struct CtdlMessage *msg) {
  * This handler detects changes being made to the system's Internet
  * configuration.
  */
-int inetcfg_aftersave(struct CtdlMessage *msg, recptypes *recp) {
+int inetcfg_aftersave(struct CtdlMessage *msg, struct recptypes *recp) {
        char *ptr;
        int linelen;
 
index 75f2d6759f0ac5cd214704c958eb3e992fa8331a..793291b44d16cdd9000d32660533ffabaaa065f9 100644 (file)
@@ -110,7 +110,15 @@ void listdeliver_sweep_room(struct ctdlroom *qrbuf, void *data) {
        
                if (number_of_messages_processed > 0) {
                        syslog(LOG_DEBUG, "listdeliver: new lastsent is %ld", ld.msgnum);
+
                        // FIXME write lastsent back to netconfig
+                       syslog(LOG_DEBUG, "\033[31mBEFORE:<%s>\033[0m", netconfig);
+                       syslog(LOG_DEBUG, "\033[32mAFTER:<%s>\033[0m", netconfig);
+
+
+
+
+
                }
        }
 
index 694f4eacdd2367f98bed2376d5cf1b564779a8e6..4ae8ac077a90a2863e899c42edd2eda8771131d6 100644 (file)
@@ -62,7 +62,7 @@ void notes_extract_vnote(char *name, char *filename, char *partnum, char *disp,
  * and modern vNote format notes) and does its best to learn the subject (summary)
  * and EUID (uid) of the note for Citadel's own nefarious purposes.
  */
-int serv_notes_beforesave(struct CtdlMessage *msg, recptypes *recp)
+int serv_notes_beforesave(struct CtdlMessage *msg, struct recptypes *recp)
 {
        char *p;
        int a, i;
index d4da34c0fe42e64fc99e959811a4c45a22834125..15110cdd68f2296b5434fefaaffc1f97d21d2ac1 100644 (file)
@@ -693,7 +693,7 @@ void smtp_rcpt(long offset, long flags)
 {
        struct CitContext *CCC = CC;
        char message_to_spammer[SIZ];
-       recptypes *valid = NULL;
+       struct recptypes *valid = NULL;
        citsmtp *sSMTP = SMTP;
 
        if (StrLength(sSMTP->from) == 0) {
@@ -792,7 +792,7 @@ void smtp_data(long offset, long flags)
        struct CtdlMessage *msg = NULL;
        long msgnum = (-1L);
        char nowstamp[SIZ];
-       recptypes *valid;
+       struct recptypes *valid;
        int scan_errors;
        int i;
        citsmtp *sSMTP = SMTP;
index c81bde42a0f9b18147ec5817d579d0267e35a5a9..e528015eb4202fa72e6f2bd50bcd071137bc6ec5 100644 (file)
@@ -82,7 +82,7 @@ void smtp_init_spoolout(void)
  * not happen because the delivery instructions message does not
  * contain a recipient.
  */
-int smtp_aftersave(struct CtdlMessage *msg, recptypes * recps)
+int smtp_aftersave(struct CtdlMessage *msg, struct recptypes *recps)
 {
        if ((recps != NULL) && (recps->num_internet > 0)) {
                struct CtdlMessage *imsg = NULL;
index 14c4e02b7fe10a5e47c99b01605a6ea8f1df22bc..3f57c2de0977fee629ca69ec40777ebbceea9bb2 100644 (file)
@@ -84,7 +84,7 @@ void smtp_do_bounce(const char *instr, int is_final)
        int num_bounces = 0;
        int bounce_this = 0;
        struct CtdlMessage *bmsg = NULL;
-       recptypes *valid;
+       struct recptypes *valid;
        int successful_bounce = 0;
        static int seq = 0;
        StrBuf *BounceMB;
index 479ea5fecf93be76c2edd76668bcabba212b2877..2b9331f93c0e1cd9a823d8fcf18f41c3ff28c830 100644 (file)
@@ -53,7 +53,7 @@
 /*
  * Connect to the SpamAssassin server and scan a message.
  */
-int spam_assassin(struct CtdlMessage *msg, recptypes *recp) {
+int spam_assassin(struct CtdlMessage *msg, struct recptypes *recp) {
        int sock = (-1);
        char sahosts[SIZ];
        int num_sahosts;
index a4a569e2cfe4b267636e74ed083b9653b58b5af1..dbb9255f949fb9750926093f38f87315bd1f89f8 100644 (file)
@@ -179,7 +179,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, recptypes *recp) {
+int vcard_upload_beforesave(struct CtdlMessage *msg, struct recptypes *recp) {
        char *s;
        char buf[SIZ];
        struct ctdluser usbuf;
@@ -358,7 +358,7 @@ int vcard_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) {
  * function accordingly (copy the vCard from the config room to the global
  * address book).
  */
-int vcard_upload_aftersave(struct CtdlMessage *msg, recptypes *recp) {
+int vcard_upload_aftersave(struct CtdlMessage *msg, struct recptypes *recp) {
        char *ptr;
        int linelen;
        long I;
@@ -924,7 +924,7 @@ void check_get(void) {
        
        if (strncasecmp(cmdbuf, "GET ", 4)==0)
        {
-               recptypes *rcpt;
+               struct recptypes *rcpt;
                char *argbuf = &cmdbuf[4];
                
                extract_token(internet_addr, argbuf, 0, '|', sizeof internet_addr);
index 5de715a3272de89645817033d0aa928127425b33..3917237aa36b3bb5f67c4e7bcab7fb652b60a9d7 100644 (file)
@@ -59,7 +59,7 @@ char *wwm = "9999999999.WikiWaybackMachine";
  * Before allowing a wiki page save to execute, we have to perform version control.
  * This involves fetching the old version of the page if it exists.
  */
-int wiki_upload_beforesave(struct CtdlMessage *msg, recptypes *recp) {
+int wiki_upload_beforesave(struct CtdlMessage *msg, struct recptypes *recp) {
        struct CitContext *CCC = CC;
        long old_msgnum = (-1L);
        struct CtdlMessage *old_msg = NULL;
index aff45e097fdce1fbc20fb1155fb28ed636d371de..901ee0764125f8c1dbd4f6864ac7457809b1360b 100644 (file)
@@ -2659,7 +2659,7 @@ void ReplicationChecks(struct CtdlMessage *msg) {
  * Save a message to disk and submit it into the delivery system.
  */
 long CtdlSubmitMsg(struct CtdlMessage *msg,    /* message to save */
-                  recptypes *recps,            /* recipients (if mail) */
+                  struct recptypes *recps,             /* recipients (if mail) */
                   const char *force            /* force a particular room? */
 ) {
        char hold_rm[ROOMNAMELEN];
@@ -2986,7 +2986,7 @@ long quickie_message(const char *from,
                     const char *subject)
 {
        struct CtdlMessage *msg;
-       recptypes *recp = NULL;
+       struct recptypes *recp = NULL;
 
        msg = malloc(sizeof(struct CtdlMessage));
        memset(msg, 0, sizeof(struct CtdlMessage));
index c83b6e2058854258bf2080fb34184c677457bbb1..aecfc4bf92177726a1b5f062afc8ed0c46fa733f 100644 (file)
@@ -78,7 +78,7 @@ void memfmout (char *mptr, const char *nl);
 void output_mime_parts(char *);
 long send_message (struct CtdlMessage *);
 void loadtroom (void);
-long CtdlSubmitMsg(struct CtdlMessage *, recptypes *, const char *);
+long CtdlSubmitMsg(struct CtdlMessage *, struct recptypes *, const char *);
 long quickie_message(const char *from, const char *fromaddr, const char *to, char *room, const char *text, int format_type, const char *subject);
 void GetMetaData(struct MetaData *, long);
 void PutMetaData(struct MetaData *);
index f81008464df5247f96343d9335b11a2936414e88..6197d2880563869a7d5dce70dd2f2ef5aa0affa3 100644 (file)
@@ -75,7 +75,7 @@ UserFunctionHook *UserHookTable = NULL;
 typedef struct MessageFunctionHook MessageFunctionHook;
 struct MessageFunctionHook {
        MessageFunctionHook *next;
-       int (*h_function_pointer) (struct CtdlMessage *msg, recptypes *recps);
+       int (*h_function_pointer) (struct CtdlMessage *msg, struct recptypes *recps);
        int eventtype;
 };
 MessageFunctionHook *MessageHookTable = NULL;
@@ -374,7 +374,7 @@ void CtdlUnregisterUserHook(void (*fcn_ptr) (struct ctdluser *), int EventType)
 }
 
 
-void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *, recptypes *), int EventType)
+void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *, struct recptypes *), int EventType)
 {
 
        MessageFunctionHook *newfcn;
@@ -390,7 +390,7 @@ void CtdlRegisterMessageHook(int (*handler)(struct CtdlMessage *, recptypes *),
 }
 
 
-void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *, recptypes *), int EventType)
+void CtdlUnregisterMessageHook(int (*handler)(struct CtdlMessage *, struct recptypes *), int EventType)
 {
        MessageFunctionHook *cur, *p, *last;
        last = NULL;
@@ -810,7 +810,7 @@ void PerformUserHooks(ctdluser *usbuf, int EventType)
        }
 }
 
-int PerformMessageHooks(struct CtdlMessage *msg, recptypes *recps, int EventType)
+int PerformMessageHooks(struct CtdlMessage *msg, struct recptypes *recps, int EventType)
 {
        MessageFunctionHook *fcn = NULL;
        int total_retval = 0;
index 677f4f72bb456be00c31df67d85565797645eb06..c8308cf6260690a8569146d7db5960a98b50d3ab 100644 (file)
@@ -31,7 +31,7 @@ void PerformUserHooks(struct ctdluser *usbuf, int EventType);
 
 int PerformXmsgHooks(char *, char *, char *, char *);
 
-int PerformMessageHooks(struct CtdlMessage *, recptypes *recps, int EventType);
+int PerformMessageHooks(struct CtdlMessage *, struct recptypes *recps, int EventType);
 
 int PerformRoomHooks(struct ctdlroom *);
 
index ff5c3355e8b6d869d52dbba40f8e626cbdf89cc0..0be145a2003095bf0f970fcebc5cd0f55d80222c 100644 (file)
@@ -44,7 +44,7 @@ struct CtdlMessage {
 
 
 /* Data structure returned by validate_recipients() */
-typedef struct __recptypes {
+struct recptypes {
        int recptypes_magic;
         int num_local;
         int num_internet;
@@ -60,7 +60,7 @@ typedef struct __recptypes {
        char *bounce_to;
        char *envelope_from;
        char *sending_room;
-} recptypes;
+};
 
 #define RECPTYPES_MAGIC 0xfeeb
 
index df9c920fc3b73a90455ba56b2d76ea5345eee04c..0dc5ae3276b4909587f673041368b5f53cc2fc8a 100644 (file)
@@ -623,7 +623,7 @@ int CtdlLoginExistingUser(const char *trythisname)
        else {
                /* native auth mode */
 
-               recptypes *valid = NULL;
+               struct recptypes *valid = NULL;
        
                /* First, try to log in as if the supplied name is a display name */
                found_user = CtdlGetUser(&CC->user, username);