diff --git a/src/pico_time.c b/src/pico_time.c index 4ccc774..ac1fb7f 100644 --- a/src/pico_time.c +++ b/src/pico_time.c @@ -64,8 +64,11 @@ int settimeofday(const struct timeval* tp, const struct timezone* tzp) } #endif - +#ifdef ENABLE_EMULATION +bool set_rtc = true; +#else bool set_rtc = false; +#endif bool has_set_rtc(void) { return set_rtc; diff --git a/src/usb/lwip/lwip.c b/src/usb/lwip/lwip.c index 58e26a6..b48bed4 100644 --- a/src/usb/lwip/lwip.c +++ b/src/usb/lwip/lwip.c @@ -59,6 +59,9 @@ try changing the first byte of tud_network_mac_address[] below from 0x02 to 0x00 #include "rest_server.h" #include "tusb.h" +void service_traffic(void); +int lwip_itf_init(void); + #define INIT_IP4(a, b, c, d) \ { PP_HTONL(LWIP_MAKEU32(a, b, c, d)) } @@ -98,7 +101,7 @@ static const dhcp_config_t dhcp_config = { }; /* handle any DNS requests from dns-server */ -bool dns_query_proc(const char *name, ip4_addr_t *addr) { +static bool dns_query_proc(const char *name, ip4_addr_t *addr) { if (0 == strcmp(name, "tiny.usb")) { *addr = ipaddr; return true; diff --git a/src/usb/lwip/rest.c b/src/usb/lwip/rest.c index b146802..241fcf9 100644 --- a/src/usb/lwip/rest.c +++ b/src/usb/lwip/rest.c @@ -191,7 +191,7 @@ int rest_execute_route_handler(const rest_request_t *request, rest_route_handler memset(response, 0, sizeof(*response)); response->status_code = 200; response->content_type = "application/json"; - response->body = "{\"ok\":true}"; + response->body = (char *)"{\"ok\":true}"; response->json = cJSON_CreateObject(); if (response->json == NULL) { return -1; @@ -288,6 +288,18 @@ const char *rest_method_to_string(rest_http_method_t method) { return "PUT"; case REST_HTTP_DELETE: return "DELETE"; + case REST_HTTP_UNKNOWN: + case REST_HTTP_GET_POST: + case REST_HTTP_GET_PUT: + case REST_HTTP_GET_DELETE: + case REST_HTTP_POST_PUT: + case REST_HTTP_POST_DELETE: + case REST_HTTP_PUT_DELETE: + case REST_HTTP_GET_POST_PUT: + case REST_HTTP_GET_POST_DELETE: + case REST_HTTP_GET_PUT_DELETE: + case REST_HTTP_POST_PUT_DELETE: + case REST_HTTP_GET_POST_PUT_DELETE: default: return "UNKNOWN"; } diff --git a/src/usb/lwip/rest_server.c b/src/usb/lwip/rest_server.c index 6a5509c..c6ed6fb 100644 --- a/src/usb/lwip/rest_server.c +++ b/src/usb/lwip/rest_server.c @@ -845,7 +845,7 @@ void rest_handle_request(rest_conn_t *conn) { } } -void rest_check_and_load_credentials(void) { +static void rest_check_and_load_credentials(void) { file_t *ef = file_new(EF_TLS_KEY); if (!file_has_data(ef)) { mbedtls_ecdsa_context ecdsa; @@ -1045,34 +1045,34 @@ static err_t rest_accept(void *arg, struct tcp_pcb *newpcb, err_t err) { return ERR_OK; } -static err_t rest_server_init_conn(struct tcp_pcb **listener_pcb, uint16_t port, rest_conn_type_t conn_type, const tls_credentials_t *tls_credentials) { - if (*listener_pcb != NULL) { +static err_t rest_server_init_conn(struct tcp_pcb **list_pcb, uint16_t port, rest_conn_type_t conn_type, const tls_credentials_t *tls_creds) { + if (*list_pcb != NULL) { return ERR_OK; } if (conn_type & REST_CONN_TLS) { - if (tls_credentials == NULL || tls_credentials->tls_key_pem == NULL || tls_credentials->tls_cert_pem == NULL) { + if (tls_creds == NULL || tls_creds->tls_key_pem == NULL || tls_creds->tls_cert_pem == NULL) { return ERR_VAL; } - if (tls_init_tls_context(tls_credentials) != 0) { + if (tls_init_tls_context(tls_creds) != 0) { return ERR_VAL; } } - *listener_pcb = tcp_new_ip_type(IPADDR_TYPE_ANY); - if (*listener_pcb == NULL) { + *list_pcb = tcp_new_ip_type(IPADDR_TYPE_ANY); + if (*list_pcb == NULL) { return ERR_MEM; } - err_t err = tcp_bind(*listener_pcb, IP_ANY_TYPE, port); + err_t err = tcp_bind(*list_pcb, IP_ANY_TYPE, port); if (err != ERR_OK) { - tcp_abort(*listener_pcb); - *listener_pcb = NULL; + tcp_abort(*list_pcb); + *list_pcb = NULL; return err; } - *listener_pcb = tcp_listen_with_backlog(*listener_pcb, REST_MAX_CONNS); - if (*listener_pcb == NULL) { + *list_pcb = tcp_listen_with_backlog(*list_pcb, REST_MAX_CONNS); + if (*list_pcb == NULL) { return ERR_MEM; } - tcp_accept(*listener_pcb, rest_accept); + tcp_accept(*list_pcb, rest_accept); return ERR_OK; } diff --git a/src/usb/lwip/rest_server.h b/src/usb/lwip/rest_server.h index 6d1d654..65f1caf 100644 --- a/src/usb/lwip/rest_server.h +++ b/src/usb/lwip/rest_server.h @@ -72,7 +72,7 @@ typedef struct { } rest_conn_t; err_t rest_server_init(rest_conn_type_t conn_type); -int lwip_itf_init(void); +void rest_handle_request(rest_conn_t *conn); extern int rest_server_error(rest_response_t *response, int status_code, const char *message); diff --git a/src/usb/lwip/rest_server_tls.c b/src/usb/lwip/rest_server_tls.c index 55094f3..c09efed 100644 --- a/src/usb/lwip/rest_server_tls.c +++ b/src/usb/lwip/rest_server_tls.c @@ -27,7 +27,6 @@ #endif extern void rest_close_conn(rest_conn_t *conn); -extern void rest_handle_request(rest_conn_t *conn); static const int tls_ciphersuites[] = { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, diff --git a/src/usb/usb_descriptors.c b/src/usb/usb_descriptors.c index 21e3074..4282295 100644 --- a/src/usb/usb_descriptors.c +++ b/src/usb/usb_descriptors.c @@ -405,7 +405,7 @@ uint16_t const *tud_descriptor_string_cb(uint8_t index, uint16_t langid) { } else if (index == 5) { #ifdef USB_ITF_LWIP - unsigned int chr_count = 0; + chr_count = 0; for (unsigned i = 0; i < sizeof(tud_network_mac_address); i++) { _desc_str[1 + chr_count++] = "0123456789ABCDEF"[(tud_network_mac_address[i] >> 4) & 0xf]; _desc_str[1 + chr_count++] = "0123456789ABCDEF"[(tud_network_mac_address[i] >> 0) & 0xf];