Merge pull request #271 from CarterLi/master

Improvements
This commit is contained in:
Linus Dierheimer
2022-09-30 14:00:03 +02:00
committed by GitHub
4 changed files with 13 additions and 11 deletions
+5 -3
View File
@@ -62,7 +62,7 @@ int ffNetworkingSendHttpRequest(const char* host, const char* path, const char*
return sockfd;
}
void ffNetworkingRecvHttpResponse(int sockfd, FFstrbuf* buffer)
bool ffNetworkingRecvHttpResponse(int sockfd, FFstrbuf* buffer)
{
ssize_t received = recv(sockfd, buffer->chars + buffer->length, ffStrbufGetFree(buffer), 0);
@@ -73,11 +73,13 @@ void ffNetworkingRecvHttpResponse(int sockfd, FFstrbuf* buffer)
}
close(sockfd);
return ffStrbufStartsWithS(buffer, "HTTP/1.1 200 OK\r\n");
}
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer)
bool ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer)
{
int sockfd = ffNetworkingSendHttpRequest(host, path, headers, timeout);
if(sockfd > 0)
ffNetworkingRecvHttpResponse(sockfd, buffer);
return ffNetworkingRecvHttpResponse(sockfd, buffer);
return false;
}
+2 -2
View File
@@ -6,7 +6,7 @@
#include "util/FFstrbuf.h"
int ffNetworkingSendHttpRequest(const char* host, const char* path, const char* headers, uint32_t timeout);
void ffNetworkingRecvHttpResponse(int sock, FFstrbuf* buffer);
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer);
bool ffNetworkingRecvHttpResponse(int sock, FFstrbuf* buffer);
bool ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer);
#endif
+3 -3
View File
@@ -47,10 +47,10 @@ void ffPrintPublicIp(FFinstance* instance)
FFstrbuf result;
ffStrbufInitA(&result, 4096);
ffNetworkingRecvHttpResponse(sockfd, &result);
ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
bool success = ffNetworkingRecvHttpResponse(sockfd, &result);
if(success) ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
if(result.length == 0)
if(!success || result.length == 0)
{
ffPrintError(instance, FF_PUBLICIP_MODULE_NAME, 0, &instance->config.publicIP, "Failed to receive the server response");
ffStrbufDestroy(&result);
+3 -3
View File
@@ -29,10 +29,10 @@ void ffPrintWeather(FFinstance* instance)
FFstrbuf result;
ffStrbufInitA(&result, 4096);
ffNetworkingRecvHttpResponse(sockfd, &result);
ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
bool success = ffNetworkingRecvHttpResponse(sockfd, &result);
if (success) ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
if(result.length == 0)
if(!success || result.length == 0)
{
ffPrintError(instance, FF_WEATHER_MODULE_NAME, 0, &instance->config.weather, "Failed to receive the server response");
ffStrbufDestroy(&result);