- if (Count == NULL)
- {
- Count = malloc(sizeof(rss_room_counter));
- Count->count = 0;
- }
- Count->count ++;
- rncptr = (rss_aggregator *) malloc(sizeof(rss_aggregator));
- memset (rncptr, 0, sizeof(rss_aggregator));
- rncptr->roomlist_parts = 1;
- rncptr->Url = NewStrBuf();
- StrBufExtract_NextToken(rncptr->Url, Line, &lPtr, '|');
-
- pthread_mutex_lock(&RSSQueueMutex);
- GetHash(RSSFetchUrls, SKEY(rncptr->Url), &vptr);
- use_this_rncptr = (rss_aggregator *)vptr;
- if (use_this_rncptr != NULL)
- {
- /* mustn't attach to an active session */
- if (use_this_rncptr->RefCount > 0)
- {
- DeleteRssCfg(rncptr);
- Count->count--;
- }
- else
- {
- long *QRnumber;
- StrBufAppendBufPlain(use_this_rncptr->rooms,
- qrbuf->QRname,
- -1, 0);
- if (use_this_rncptr->roomlist_parts == 1)
- {
- use_this_rncptr->OtherQRnumbers = NewHash(1, lFlathash);
- }
- QRnumber = (long*)malloc(sizeof(long));
- *QRnumber = qrbuf->QRnumber;
- Put(use_this_rncptr->OtherQRnumbers, LKEY(qrbuf->QRnumber), QRnumber, NULL);
- use_this_rncptr->roomlist_parts++;
- }
- pthread_mutex_unlock(&RSSQueueMutex);
-
-
- FreeStrBuf(&rncptr->Url);
- free(rncptr);
- rncptr = NULL;
- continue;
- }
- pthread_mutex_unlock(&RSSQueueMutex);
-
- rncptr->ItemType = RSS_UNSET;
-
- rncptr->rooms = NewStrBufPlain(qrbuf->QRname, -1);
-
- pthread_mutex_lock(&RSSQueueMutex);
- Put(RSSFetchUrls, SKEY(rncptr->Url), rncptr, DeleteRssCfg);
- pthread_mutex_unlock(&RSSQueueMutex);
+ long *QRnumber;
+ StrBufAppendBufPlain(
+ use_this_RSSAggr->rooms,
+ qrbuf->QRname,
+ -1, 0);
+ if (use_this_RSSAggr->roomlist_parts==1)
+ {
+ use_this_RSSAggr->OtherQRnumbers
+ = NewHash(1, lFlathash);
+ }
+ QRnumber = (long*)malloc(sizeof(long));
+ *QRnumber = qrbuf->QRnumber;
+ Put(use_this_RSSAggr->OtherQRnumbers,
+ LKEY(qrbuf->QRnumber),
+ QRnumber,
+ NULL);
+ use_this_RSSAggr->roomlist_parts++;
+
+ pthread_mutex_unlock(&RSSQueueMutex);
+
+ FreeStrBuf(&RSSAggr->Url);
+ free(RSSAggr);
+ RSSAggr = NULL;
+ pLine = pLine->next;
+ continue;