[Commits] : Tuxbox-GIT: apps branch master updated. CVS-Final-577-gd28c085
Tuxbox Sources
Brought to you by:
dbt1
|
From: GetAway <tux...@ne...> - 2015-05-28 14:07:42
|
Project "Tuxbox-GIT: apps":
The branch, master has been updated
via d28c0857af1346b73564b00091069453db874ace (commit)
from 9f02607d0beb28e38ab4609f7bdfadad70eeb016 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d28c0857af1346b73564b00091069453db874ace
Author: [CST] Focus <foc...@gm...>
Date: Thu May 28 16:07:00 2015 +0200
UPNPDevice.cpp: change to non-blocking recv
Signed-off-by: GetAway <get...@t-...>
diff --git a/misc/libs/libupnpclient/UPNPDevice.cpp b/misc/libs/libupnpclient/UPNPDevice.cpp
index 90a85e7..00a768f 100644
--- a/misc/libs/libupnpclient/UPNPDevice.cpp
+++ b/misc/libs/libupnpclient/UPNPDevice.cpp
@@ -34,6 +34,8 @@
#include <poll.h>
#include "upnpclient.h"
#include <unistd.h>
+#include <errno.h>
+#include <stdio.h>
struct ToLower
{
@@ -433,11 +435,32 @@ std::string CUPnPDevice::HTTP(std::string url, std::string post, std::string act
commandstr = command.str();
result = send(t_socket, commandstr.c_str(), commandstr.size(), 0);
+#if 0
while ((received = recv(t_socket, buf, sizeof(buf)-1, 0)) > 0)
{
buf[received] = 0;
reply << buf;
}
+#endif
+ struct pollfd fds[1];
+ fds[0].fd = t_socket;
+ fds[0].events = POLLIN;
+ while (true) {
+ int result = poll(fds, 1, 4000);
+ if (result < 0) {
+ printf("CUPnPDevice::HTTP: poll error %s\n", strerror(errno));
+ break;
+ }
+ if (result == 0) {
+ printf("CUPnPDevice::HTTP: poll timeout\n");
+ break;
+ }
+ received = recv(t_socket, buf, sizeof(buf)-1, 0);
+ if (received <= 0)
+ break;
+ buf[received] = 0;
+ reply << buf;
+ }
close(t_socket);
return reply.str();
}
-----------------------------------------------------------------------
Summary of changes:
misc/libs/libupnpclient/UPNPDevice.cpp | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
--
Tuxbox-GIT: apps
|