Skip to content

Commit b3c5015

Browse files
Merge pull request #271 from CarterLi/master
Improvements
2 parents 265254d + 9418138 commit b3c5015

File tree

4 files changed

+13
-11
lines changed

4 files changed

+13
-11
lines changed

src/common/networking.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ int ffNetworkingSendHttpRequest(const char* host, const char* path, const char*
6262
return sockfd;
6363
}
6464

65-
void ffNetworkingRecvHttpResponse(int sockfd, FFstrbuf* buffer)
65+
bool ffNetworkingRecvHttpResponse(int sockfd, FFstrbuf* buffer)
6666
{
6767
ssize_t received = recv(sockfd, buffer->chars + buffer->length, ffStrbufGetFree(buffer), 0);
6868

@@ -73,11 +73,13 @@ void ffNetworkingRecvHttpResponse(int sockfd, FFstrbuf* buffer)
7373
}
7474

7575
close(sockfd);
76+
return ffStrbufStartsWithS(buffer, "HTTP/1.1 200 OK\r\n");
7677
}
7778

78-
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer)
79+
bool ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer)
7980
{
8081
int sockfd = ffNetworkingSendHttpRequest(host, path, headers, timeout);
8182
if(sockfd > 0)
82-
ffNetworkingRecvHttpResponse(sockfd, buffer);
83+
return ffNetworkingRecvHttpResponse(sockfd, buffer);
84+
return false;
8385
}

src/common/networking.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#include "util/FFstrbuf.h"
77

88
int ffNetworkingSendHttpRequest(const char* host, const char* path, const char* headers, uint32_t timeout);
9-
void ffNetworkingRecvHttpResponse(int sock, FFstrbuf* buffer);
10-
void ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer);
9+
bool ffNetworkingRecvHttpResponse(int sock, FFstrbuf* buffer);
10+
bool ffNetworkingGetHttp(const char* host, const char* path, uint32_t timeout, const char* headers, FFstrbuf* buffer);
1111

1212
#endif

src/modules/publicip.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ void ffPrintPublicIp(FFinstance* instance)
4747

4848
FFstrbuf result;
4949
ffStrbufInitA(&result, 4096);
50-
ffNetworkingRecvHttpResponse(sockfd, &result);
51-
ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
50+
bool success = ffNetworkingRecvHttpResponse(sockfd, &result);
51+
if(success) ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
5252

53-
if(result.length == 0)
53+
if(!success || result.length == 0)
5454
{
5555
ffPrintError(instance, FF_PUBLICIP_MODULE_NAME, 0, &instance->config.publicIP, "Failed to receive the server response");
5656
ffStrbufDestroy(&result);

src/modules/weather.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ void ffPrintWeather(FFinstance* instance)
2929

3030
FFstrbuf result;
3131
ffStrbufInitA(&result, 4096);
32-
ffNetworkingRecvHttpResponse(sockfd, &result);
33-
ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
32+
bool success = ffNetworkingRecvHttpResponse(sockfd, &result);
33+
if (success) ffStrbufSubstrAfterFirstS(&result, "\r\n\r\n");
3434

35-
if(result.length == 0)
35+
if(!success || result.length == 0)
3636
{
3737
ffPrintError(instance, FF_WEATHER_MODULE_NAME, 0, &instance->config.weather, "Failed to receive the server response");
3838
ffStrbufDestroy(&result);

0 commit comments

Comments
 (0)