RSS-CLIENT: remember checksum for whole feed, so we can save parsing work if we know...
[citadel.git] / citadel / modules / rssclient / rss_atom_parser.c
index 3d0bbfb908e05c3e2e2120fd975ecc53380a5e9e..c1f5285804341e07aaa525ed0076c271fa0d8d07 100644 (file)
@@ -777,7 +777,7 @@ void rss_save_item(rss_item *ri, rss_aggregator *RSSAggr)
 
        msglen += 1024 + StrLength(ri->link) + StrLength(ri->description) ;
 
-       Message = NewStrBufPlain(NULL, StrLength(ri->description));
+       Message = NewStrBufPlain(NULL, msglen);
 
        StrBufPlain(Message, HKEY(
                            "Content-type: text/html; charset=\"UTF-8\"\r\n\r\n"
@@ -946,6 +946,8 @@ void rss_xml_end(void *data, const char *supplied_el)
        FlushStrBuf(RSSAggr->CData);
 }
 
+
+
 /*
  * Callback function for passing libcurl's output to expat for parsing
  * we don't do streamed parsing so expat can handle non-utf8 documents
@@ -956,6 +958,8 @@ size_t rss_libcurl_callback(void *ptr, size_t size, size_t nmemb, void *stream)
 }
  */
 
+
+
 eNextState RSSAggregator_ParseReply(AsyncIO *IO)
 {
        StrBuf *Buf;
@@ -966,16 +970,6 @@ eNextState RSSAggregator_ParseReply(AsyncIO *IO)
        long len;
        const char *Key;
 
-
-       if (IO->HttpReq.httpcode != 200)
-       {
-
-               EVRSSATOM_syslog(LOG_ALERT, "need a 200, got a %ld !\n",
-                                IO->HttpReq.httpcode);
-// TODO: aide error message with rate limit
-               return eAbort;
-       }
-
        RSSAggr = IO->Data;
        ri = RSSAggr->Item;
        RSSAggr->CData = NewStrBufPlain(NULL, SIZ);
@@ -1045,7 +1039,7 @@ eNextState RSSAggregator_ParseReply(AsyncIO *IO)
                           &len,
                           &Key,
                           (void**) &RSSAggr->ThisMsg))
-               return QueueDBOperation(IO, RSS_FetchNetworkUsetableEntry);
+               return NextDBOperation(IO, RSS_FetchNetworkUsetableEntry);
        else
                return eAbort;
 }