use an Enum for the cm_fields vector instead of nameless chars
[citadel.git] / citadel / modules / rssclient / serv_rssclient.c
index fffe6d8e1f81201642bae63af3c8da55212a1cd9..059cd1b47f14e7a0b457fe82ea0922ce8212e7ac 100644 (file)
@@ -307,36 +307,36 @@ int rss_format_item(AsyncIO *IO, networker_save_message *SaveMsg)
                if (!FromAt && StrLength (SaveMsg->author_email) > 0)
                {
                        StrBufRFC2047encode(&Encoded, SaveMsg->author_or_creator);
-                       SaveMsg->Msg.cm_fields['A'] = SmashStrBuf(&Encoded);
-                       SaveMsg->Msg.cm_fields['P'] =
+                       SaveMsg->Msg.cm_fields[eAuthor] = SmashStrBuf(&Encoded);
+                       SaveMsg->Msg.cm_fields[eMessagePath] =
                                SmashStrBuf(&SaveMsg->author_email);
                }
                else
                {
                        if (FromAt)
                        {
-                               SaveMsg->Msg.cm_fields['A'] =
+                               SaveMsg->Msg.cm_fields[eAuthor] =
                                        SmashStrBuf(&SaveMsg->author_or_creator);
-                               SaveMsg->Msg.cm_fields['P'] =
-                                       strdup(SaveMsg->Msg.cm_fields['A']);
+                               SaveMsg->Msg.cm_fields[eMessagePath] =
+                                       strdup(SaveMsg->Msg.cm_fields[eAuthor]);
                        }
                        else
                        {
                                StrBufRFC2047encode(&Encoded,
                                                    SaveMsg->author_or_creator);
-                               SaveMsg->Msg.cm_fields['A'] =
+                               SaveMsg->Msg.cm_fields[eAuthor] =
                                        SmashStrBuf(&Encoded);
-                               SaveMsg->Msg.cm_fields['P'] =
+                               SaveMsg->Msg.cm_fields[eMessagePath] =
                                        strdup("rss@localhost");
 
                        }
                }
        }
        else {
-               SaveMsg->Msg.cm_fields['A'] = strdup("rss");
+               SaveMsg->Msg.cm_fields[eAuthor] = strdup("rss");
        }
 
-       SaveMsg->Msg.cm_fields['N'] = strdup(NODENAME);
+       SaveMsg->Msg.cm_fields[eNodeName] = strdup(NODENAME);
        if (SaveMsg->title != NULL) {
                long len;
                char *Sbj;
@@ -358,7 +358,7 @@ int rss_format_item(AsyncIO *IO, networker_save_message *SaveMsg)
                StrBufTrim(Encoded);
                StrBufRFC2047encode(&QPEncoded, Encoded);
 
-               SaveMsg->Msg.cm_fields['U'] = SmashStrBuf(&QPEncoded);
+               SaveMsg->Msg.cm_fields[eMsgSubject] = SmashStrBuf(&QPEncoded);
                FreeStrBuf(&Encoded);
        }
        if (SaveMsg->link == NULL)
@@ -398,7 +398,7 @@ eNextState RSSSaveMessage(AsyncIO *IO)
 
        if (rss_format_item(IO, RSSAggr->ThisMsg))
        {
-               RSSAggr->ThisMsg->Msg.cm_fields['M'] =
+               RSSAggr->ThisMsg->Msg.cm_fields[eMesageText] =
                        SmashStrBuf(&RSSAggr->ThisMsg->Message);
 
                CtdlSubmitMsg(&RSSAggr->ThisMsg->Msg, &RSSAggr->recp, NULL, 0);
@@ -419,13 +419,13 @@ eNextState RSSSaveMessage(AsyncIO *IO)
 
 eNextState RSS_FetchNetworkUsetableEntry(AsyncIO *IO)
 {
+#ifndef DEBUG_RSS
        const char *Key;
        long len;
        rss_aggregator *Ctx = (rss_aggregator *) IO->Data;
 
        /* Find out if we've already seen this item */
 // todo: expiry?
-#ifndef DEBUG_RSS
        SetRSSState(IO, eRSSUT);
        if (CheckIfAlreadySeen("RSS Item Seen",
                               Ctx->ThisMsg->MsgGUID,
@@ -515,14 +515,23 @@ eNextState RSSAggregator_AnalyseReply(AsyncIO *IO)
 
                strs[1] = ChrPtr(Ctx->rooms);
                lens[1] = StrLength(Ctx->rooms);
+
+               if (IO->HttpReq.CurlError == NULL)
+                       IO->HttpReq.CurlError = "";
+
                StrBufPrintf(ErrMsg,
                             "Error while RSS-Aggregation Run of %s\n"
                             " need a 200, got a %ld !\n"
+                            " Curl Error message: \n%s / %s\n"
                             " Response text was: \n"
                             " \n %s\n",
                             ChrPtr(Ctx->Url),
                             IO->HttpReq.httpcode,
-                            ChrPtr(IO->HttpReq.ReplyData));
+                            IO->HttpReq.errdesc,
+                            IO->HttpReq.CurlError,
+                            ChrPtr(IO->HttpReq.ReplyData)
+                       );
+
                CtdlAideFPMessage(
                        ChrPtr(ErrMsg),
                        "RSS Aggregation run failure",