107 lines
3.9 KiB
Diff
107 lines
3.9 KiB
Diff
|
From 4fd8a07b560dcd4ad5706684d512d33707de3da0 Mon Sep 17 00:00:00 2001
|
||
|
From: Jean-Francois Dockes <jf@dockes.org>
|
||
|
Date: Fri, 3 Jul 2020 19:26:37 +0200
|
||
|
Subject: [PATCH] Adapt streamproxy to newer microhttpd where results are now
|
||
|
an enum
|
||
|
|
||
|
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||
|
[downloaded from upstream commit
|
||
|
https://framagit.org/medoc92/upmpdcli/-/commit/4fd8a07b560dcd4ad5706684d512d33707de3da0]
|
||
|
---
|
||
|
src/mediaserver/cdplugins/streamproxy.cpp | 23 ++++++++++++++---------
|
||
|
1 file changed, 14 insertions(+), 9 deletions(-)
|
||
|
|
||
|
diff --git a/src/mediaserver/cdplugins/streamproxy.cpp b/src/mediaserver/cdplugins/streamproxy.cpp
|
||
|
index abc57915..8d283834 100644
|
||
|
--- a/src/mediaserver/cdplugins/streamproxy.cpp
|
||
|
+++ b/src/mediaserver/cdplugins/streamproxy.cpp
|
||
|
@@ -28,6 +28,11 @@
|
||
|
#include <fcntl.h>
|
||
|
#include <microhttpd.h>
|
||
|
|
||
|
+
|
||
|
+#if MHD_VERSION < 0x00097002
|
||
|
+typedef int MHD_Result;
|
||
|
+#endif
|
||
|
+
|
||
|
#include <mutex>
|
||
|
#include <condition_variable>
|
||
|
#include <unordered_map>
|
||
|
@@ -155,7 +160,7 @@ public:
|
||
|
~Internal();
|
||
|
bool startMHD();
|
||
|
|
||
|
- int answerConn(
|
||
|
+ MHD_Result answerConn(
|
||
|
struct MHD_Connection *connection, const char *url,
|
||
|
const char *method, const char *version,
|
||
|
const char *upload_data, size_t *upload_data_size,
|
||
|
@@ -202,7 +207,7 @@ StreamProxy::Internal::Internal(int _listenport, UrlTransFunc _urltrans)
|
||
|
}
|
||
|
|
||
|
|
||
|
-static int answer_to_connection(
|
||
|
+static MHD_Result answer_to_connection(
|
||
|
void *cls, struct MHD_Connection *conn,
|
||
|
const char *url, const char *method, const char *version,
|
||
|
const char *upload_data, size_t *upload_data_size,
|
||
|
@@ -214,7 +219,7 @@ static int answer_to_connection(
|
||
|
return internal->answerConn(
|
||
|
conn, url, method, version, upload_data, upload_data_size, con_cls);
|
||
|
} else {
|
||
|
- return -1;
|
||
|
+ return MHD_NO;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -238,8 +243,8 @@ static int print_out_key (void *cls, enum MHD_ValueKind kind,
|
||
|
}
|
||
|
#endif /* PRINT_KEYS */
|
||
|
|
||
|
-static int mapvalues_cb(void *cls, enum MHD_ValueKind kind,
|
||
|
- const char *key, const char *value)
|
||
|
+static MHD_Result mapvalues_cb(void *cls, enum MHD_ValueKind kind,
|
||
|
+ const char *key, const char *value)
|
||
|
{
|
||
|
unordered_map<string,string> *mp = (unordered_map<string,string> *)cls;
|
||
|
if (mp) {
|
||
|
@@ -307,7 +312,7 @@ static bool processRange(struct MHD_Connection *mhdconn, uint64_t& offset)
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
-int StreamProxy::Internal::answerConn(
|
||
|
+MHD_Result StreamProxy::Internal::answerConn(
|
||
|
struct MHD_Connection *mhdconn, const char *_url,
|
||
|
const char *method, const char *version,
|
||
|
const char *upload_data, size_t *upload_data_size,
|
||
|
@@ -352,7 +357,7 @@ int StreamProxy::Internal::answerConn(
|
||
|
return MHD_NO;
|
||
|
}
|
||
|
MHD_add_response_header (response, "Location", url.c_str());
|
||
|
- int ret = MHD_queue_response(mhdconn, 302, response);
|
||
|
+ MHD_Result ret = MHD_queue_response(mhdconn, 302, response);
|
||
|
MHD_destroy_response(response);
|
||
|
return ret;
|
||
|
}
|
||
|
@@ -393,7 +398,7 @@ int StreamProxy::Internal::answerConn(
|
||
|
int code = httpcode ? httpcode : MHD_HTTP_INTERNAL_SERVER_ERROR;
|
||
|
struct MHD_Response *response =
|
||
|
MHD_create_response_from_buffer(0, 0, MHD_RESPMEM_PERSISTENT);
|
||
|
- int ret = MHD_queue_response(mhdconn, code, response);
|
||
|
+ MHD_Result ret = MHD_queue_response(mhdconn, code, response);
|
||
|
MHD_destroy_response(response);
|
||
|
LOGINF("StreamProxy::answerConn (1): return with http code: " <<
|
||
|
code << endl);
|
||
|
@@ -434,7 +439,7 @@ int StreamProxy::Internal::answerConn(
|
||
|
if (reader->fetcher->fetchDone(&fetchcode, &httpcode)) {
|
||
|
code = httpcode ? httpcode : MHD_HTTP_INTERNAL_SERVER_ERROR;
|
||
|
}
|
||
|
- int ret = MHD_queue_response(mhdconn, code, response);
|
||
|
+ MHD_Result ret = MHD_queue_response(mhdconn, code, response);
|
||
|
MHD_destroy_response(response);
|
||
|
return ret;
|
||
|
}
|
||
|
--
|
||
|
GitLab
|
||
|
|