void time_handler(void* request, void* response, uint8_t *buffer, uint16_t preferred_size, int32_t *offset) { const uint8_t *payload = 0; size_t pay_len = REST.get_request_payload(request, &payload); if (payload && pay_len == 4) { uint32_t time; memcpy(&time, payload, 4); time = uip_ntohl(time); clock_set_seconds(time); REST.set_response_status(response, CHANGED_2_04); } else { REST.set_response_status(response, BAD_REQUEST_4_00); memcpy(buffer, "32 bit Unixzeit in Network-Byte-Order benötigt.", 48); REST.set_response_payload(response, buffer, 48); } }
void clock_start(Clock *clock){ g_return_if_fail(clock != NULL); if (clock->timer_id != -1) return; clock_set_seconds(clock, clock->stopped); clock->timer_id = g_timeout_add(1000*clock->update_interval, clock_timer_callback, clock); }