#include "http.h"
#include "mcast.h"
+#include "sap.h"
-#define CHUNKSIZE 3000
-#define GTOD_INTERVAL 100
+#define CHUNKSIZE 3000
+#define GTOD_INTERVAL 100
+#define MAX_ERROR_SLEEP 60
void record(int(*open_fn)(char *), char *url, char *outfile, int duration)
{
sleep(error_sleep);
printf("Reconnecting... ");
if ((in = (*open_fn)(url)) < 0) {
- if (error_sleep < 60)
+ if (error_sleep < MAX_ERROR_SLEEP)
error_sleep *= 2;
+ if (error_sleep > MAX_ERROR_SLEEP)
+ error_sleep = MAX_ERROR_SLEEP;
+
printf("failed\n");
continue;
} else {
exit(EXIT_FAILURE);
}
+ if (!is_http(url) && !is_mcast(url)) {
+ char *service_url;
+ if ((service_url = get_url_from_sap(url))) {
+ printf("SAP says: '%s' -> %s\n", url, service_url);
+ url = service_url;
+ }
+ }
+
if (is_http(url)) {
open_fn = &open_http;
} else if (is_mcast(url)) {
open_fn = &open_mcast;
} else {
- printf("URL %s not supported!\n", url);
+ printf("URL '%s' not supported!\n", url);
exit(EXIT_FAILURE);
}