Improve the fault tolerance, and recovery from network missing on bootup
[doorlock_v1.git] / client.cpp
CommitLineData
bb5fbbec
JM
1#include <ESP8266WiFi.h>
2
3#include "config.h"
4
5static String http_get(const String url)
6{
7 WiFiClient client;
8 if (!client.connect(AUTH_HOST, 80)) {
9 Serial.println("connection failed");
10 return "";
11 }
12
13 client.print(String("GET ") + url + " HTTP/1.1\r\n" +
14 "Host: " + AUTH_HOST + "\r\n" +
15 "Connection: close\r\n" +
16 "\r\n");
17 delay(10);
18
19 String answer;
20 while (client.available()) {
21 String line = client.readStringUntil('\r');
22 answer += line;
23 }
24 return answer;
25}
26
27bool log_attempt(const char *uid, bool success)
28{
29 String url = AUTH_URL;
30 url += "?device=";
31 url += DEVICE_ID;
32 url += "&uid=";
33 url += uid;
34 url += "&action=access";
35 if (success) {
36 url += "&success=true";
37 } else {
38 url += "&success=false";
39 }
40
41 String answer = http_get(url);
42 if (answer == "") return false;
43 return true;
44}
45