- }
- 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);
- 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);