upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/main/tollgate_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/tollgate_main.c')
-rw-r--r--main/tollgate_main.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/main/tollgate_main.c b/main/tollgate_main.c
index d4b29bc..7fa1be1 100644
--- a/main/tollgate_main.c
+++ b/main/tollgate_main.c
@@ -11,12 +11,14 @@
11#include "lwip/dns.h" 11#include "lwip/dns.h"
12#include "dhcpserver/dhcpserver.h" 12#include "dhcpserver/dhcpserver.h"
13#include "config.h" 13#include "config.h"
14#include "identity.h"
14#include "dns_server.h" 15#include "dns_server.h"
15#include "captive_portal.h" 16#include "captive_portal.h"
16#include "firewall.h" 17#include "firewall.h"
17#include "session.h" 18#include "session.h"
18#include "tollgate_api.h" 19#include "tollgate_api.h"
19#include "wallet.h" 20#include "nucula_wallet.h"
21#include "wifistr.h"
20 22
21#define MAX_STA_RETRY 5 23#define MAX_STA_RETRY 5
22static const char *TAG = "tollgate_main"; 24static const char *TAG = "tollgate_main";
@@ -92,8 +94,16 @@ static void ip_event_handler(void *arg, esp_event_base_t event_base,
92static void wallet_init_task(void *pvParameters) 94static void wallet_init_task(void *pvParameters)
93{ 95{
94 const tollgate_config_t *cfg = tollgate_config_get(); 96 const tollgate_config_t *cfg = tollgate_config_get();
95 wallet_init(); 97 nucula_wallet_init(cfg->mint_url);
96 wallet_fetch_keysets(cfg->mint_url); 98 vTaskDelete(NULL);
99}
100
101static void publish_wifistr_task(void *pvParameters)
102{
103 vTaskDelay(pdMS_TO_TICKS(5000));
104 wifistr_publish();
105 const tollgate_config_t *cfg = tollgate_config_get();
106 wifistr_start_periodic(cfg->nostr_publish_interval_s);
97 vTaskDelete(NULL); 107 vTaskDelete(NULL);
98} 108}
99 109
@@ -123,6 +133,8 @@ static void start_services(void)
123 captive_portal_start(cfg->ap_ip_str); 133 captive_portal_start(cfg->ap_ip_str);
124 tollgate_api_start(); 134 tollgate_api_start();
125 135
136 xTaskCreate(publish_wifistr_task, "wifistr_init", 16384, NULL, 3, NULL);
137
126 s_services_running = true; 138 s_services_running = true;
127 if (s_services_mutex) xSemaphoreGive(s_services_mutex); 139 if (s_services_mutex) xSemaphoreGive(s_services_mutex);
128 ESP_LOGI(TAG, "=== TollGate services started ==="); 140 ESP_LOGI(TAG, "=== TollGate services started ===");
@@ -214,7 +226,11 @@ void app_main(void)
214 ESP_ERROR_CHECK(ret); 226 ESP_ERROR_CHECK(ret);
215 227
216 ESP_ERROR_CHECK(tollgate_config_init()); 228 ESP_ERROR_CHECK(tollgate_config_init());
229
230 ESP_ERROR_CHECK(identity_init(tollgate_config_get()->nsec));
231
217 tollgate_config_derive_unique((tollgate_config_t *)tollgate_config_get()); 232 tollgate_config_derive_unique((tollgate_config_t *)tollgate_config_get());
233
218 ESP_ERROR_CHECK(esp_netif_init()); 234 ESP_ERROR_CHECK(esp_netif_init());
219 ESP_ERROR_CHECK(esp_event_loop_create_default()); 235 ESP_ERROR_CHECK(esp_event_loop_create_default());
220 236
@@ -227,6 +243,11 @@ void app_main(void)
227 wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); 243 wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
228 ESP_ERROR_CHECK(esp_wifi_init(&cfg)); 244 ESP_ERROR_CHECK(esp_wifi_init(&cfg));
229 245
246 const tollgate_config_t *tcfg = tollgate_config_get();
247 ESP_ERROR_CHECK(esp_wifi_set_mac(WIFI_IF_STA, tcfg->sta_mac));
248 ESP_ERROR_CHECK(esp_wifi_set_mac(WIFI_IF_AP, tcfg->ap_mac));
249 ESP_LOGI(TAG, "MACs set from identity");
250
230 ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, 251 ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID,
231 &wifi_event_handler, NULL, NULL)); 252 &wifi_event_handler, NULL, NULL));
232 ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, 253 ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP,
@@ -241,8 +262,8 @@ void app_main(void)
241 wifi_config_t sta_config; 262 wifi_config_t sta_config;
242 if (tollgate_config_get_wifi(&sta_config) == ESP_OK) { 263 if (tollgate_config_get_wifi(&sta_config) == ESP_OK) {
243 ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &sta_config)); 264 ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &sta_config));
244 const tollgate_config_t *tcfg = tollgate_config_get(); 265 const tollgate_config_t *tcfg2 = tollgate_config_get();
245 ESP_LOGI(TAG, "STA configured for SSID: %s", tcfg->networks[tcfg->current_network].ssid); 266 ESP_LOGI(TAG, "STA configured for SSID: %s", tcfg2->networks[tcfg2->current_network].ssid);
246 } 267 }
247 268
248 ESP_ERROR_CHECK(esp_wifi_start()); 269 ESP_ERROR_CHECK(esp_wifi_start());