RSS was not really disabled when it was supposed to be. Experimental wireless support.
[monky] / src / rss.c
index d15b258..191f09a 100644 (file)
--- a/src/rss.c
+++ b/src/rss.c
@@ -6,6 +6,8 @@
  * new rss.c written by hifi (Toni Spets)
  */
 
+#ifdef RSS
+
 #include <stdio.h>
 #include <string.h>
 #include <time.h>
@@ -70,6 +72,24 @@ int rss_delay(int *wait, int delay)
        return 0;
 }
 
+void init_rss_info()
+{
+       int i;
+       for(i = 0; i < MAX_FEEDS; i++) {
+               feeds[i].uri = NULL;
+               feeds[i].data = NULL;
+               feeds[i].last_update = 0;
+       }
+}
+
+void free_rss_info()
+{
+       int i;
+       for(i = 0; i < num_feeds; i++)
+               if(feeds[i].uri != NULL)
+                       free(feeds[i].uri);
+}
+
 PRSS*
 get_rss_info(char *uri, int delay)
 {
@@ -88,21 +108,18 @@ get_rss_info(char *uri, int delay)
        int i;
 
        // first seek for the uri in list
-       if(num_feeds > 0) {
-               for(i = 0; i < num_feeds; i++) {
-                       if(feeds[i].uri != NULL)
-                               if(!strcmp(feeds[i].uri, uri)) {
-                                       curfeed = &feeds[i];
-                                       break;
-                               }
-               }
+       for(i = 0; i < num_feeds; i++) {
+               if(feeds[i].uri != NULL)
+                       if(!strcmp(feeds[i].uri, uri)) {
+                               curfeed = &feeds[i];
+                               break;
+                       }
        }
 
        if(!curfeed) { // new feed
                if(num_feeds == MAX_FEEDS-1) return NULL;
                curfeed = &feeds[num_feeds];
-               curfeed->uri = (char *)malloc(sizeof(char) * strlen(uri)+1);
-               strncpy(curfeed->uri, uri, strlen(uri)+1);
+               curfeed->uri = strdup(uri);
                num_feeds++;
        }
 
@@ -112,8 +129,10 @@ get_rss_info(char *uri, int delay)
        if(!rss_delay(last_update, delay))
                return curdata; // wait for delay to pass
 
-       if(curdata != NULL)
+       if(curdata != NULL) {
                prss_free(curdata); // clean up old data
+               curdata = NULL;
+       }
 
        curl = curl_easy_init();
        if(curl) {
@@ -130,10 +149,12 @@ get_rss_info(char *uri, int delay)
                } else
                        ERR("No data from server");
 
-               curfeed->data = curdata;
-
                curl_easy_cleanup(curl);
        }
 
+       curfeed->data = curdata;
+
        return curdata;
 }
+
+#endif