X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Frssclient%2Fserv_rssclient.c;h=17b67317fd7a5ac42c25e3e888ec954ab1acb73c;hb=c4609169aa7baf208848e72c16d33a3f892353b8;hp=88015ad476dd1d3eb7a1ddaea9926315d9ba2983;hpb=2711c26ef2248bec46b835406abfdb694610995c;p=citadel.git diff --git a/citadel/modules/rssclient/serv_rssclient.c b/citadel/modules/rssclient/serv_rssclient.c index 88015ad47..17b67317f 100644 --- a/citadel/modules/rssclient/serv_rssclient.c +++ b/citadel/modules/rssclient/serv_rssclient.c @@ -1,7 +1,7 @@ /* * Bring external RSS feeds into rooms. * - * Copyright (c) 2007-2012 by the citadel.org team + * Copyright (c) 2007-2015 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3. @@ -365,7 +365,7 @@ int rss_format_item(AsyncIO *IO, networker_save_message *SaveMsg) CM_SetField(&SaveMsg->Msg, eAuthor, HKEY("rss")); } - CM_SetField(&SaveMsg->Msg, eNodeName, CFG_KEY(c_nodename)); + CM_SetField(&SaveMsg->Msg, eNodeName, CtdlGetConfigStr("c_nodename"), strlen(CtdlGetConfigStr("c_nodename"))); if (SaveMsg->title != NULL) { long len; char *Sbj; @@ -375,20 +375,25 @@ int rss_format_item(AsyncIO *IO, networker_save_message *SaveMsg) StrBufSpaceToBlank(SaveMsg->title); len = StrLength(SaveMsg->title); Sbj = html_to_ascii(ChrPtr(SaveMsg->title), len, 512, 0); - len = strlen(Sbj); - if ((len > 0) && (Sbj[len - 1] == '\n')) - { - len --; - Sbj[len] = '\0'; - } - Encoded = NewStrBufPlain(Sbj, len); - free(Sbj); - - StrBufTrim(Encoded); - StrBufRFC2047encode(&QPEncoded, Encoded); + if (!IsEmptyStr(Sbj)) { + len = strlen(Sbj); + if ((Sbj[len - 1] == '\n')) + { + len --; + Sbj[len] = '\0'; + } + Encoded = NewStrBufPlain(Sbj, len); + - CM_SetAsFieldSB(&SaveMsg->Msg, eMsgSubject, &QPEncoded); - FreeStrBuf(&Encoded); + StrBufTrim(Encoded); + StrBufRFC2047encode(&QPEncoded, Encoded); + + CM_SetAsFieldSB(&SaveMsg->Msg, eMsgSubject, &QPEncoded); + FreeStrBuf(&Encoded); + } + if (Sbj != NULL) { + free(Sbj); + } } if (SaveMsg->link == NULL) SaveMsg->link = NewStrBufPlain(HKEY("")); @@ -685,7 +690,7 @@ eNextState RSSAggregator_AnalyseReply(AsyncIO *IO) guid, EvGetNow(IO), EvGetNow(IO) - USETABLE_ANTIEXPIRE, - eCheckUpdate, + eUpdate, CCID, IO->ID) != 0) { @@ -738,6 +743,7 @@ int rss_do_fetching(rss_aggregator *RSSAggr) return 0; } chnd = IO->HttpReq.chnd; + OPT(HEADERDATA, IO); OPT(HEADERFUNCTION, GetLocationString); SetRSSState(IO, eRSSCreated);