diff --git a/src/sdpd-service.c b/src/sdpd-service.c
index a7903a8..1eb07e2 100644
--- a/src/sdpd-service.c
+++ b/src/sdpd-service.c
#include "adapter.h"
static sdp_record_t *server = NULL;
+static uint32_t fixed_dbts = 0;
/*
* List of version numbers supported by the SDP server.
*/
static void update_db_timestamp(void)
{
- uint32_t dbts = sdp_get_time();
- sdp_data_t *d = sdp_data_alloc(SDP_UINT32, &dbts);
- sdp_attr_replace(server, SDP_ATTR_SVCDB_STATE, d);
+ if (fixed_dbts) {
+ sdp_data_t *d = sdp_data_alloc(SDP_UINT32, &fixed_dbts);
+ sdp_attr_replace(server, SDP_ATTR_SVCDB_STATE, d);
+ } else {
+ uint32_t dbts = sdp_get_time();
+ sdp_data_t *d = sdp_data_alloc(SDP_UINT32, &dbts);
+ sdp_attr_replace(server, SDP_ATTR_SVCDB_STATE, d);
+ }
+}
+
+void set_fixed_db_timestamp(uint32_t dbts)
+{
+ fixed_dbts = dbts;
}
void register_public_browse_group(void)
diff --git a/src/sdpd.h b/src/sdpd.h
index 93ebcd6..9a0e1e9 100644
--- a/src/sdpd.h
+++ b/src/sdpd.h
void handle_internal_request(int sk, int mtu, void *data, int len);
void handle_request(int sk, uint8_t *data, int len);
+void set_fixed_db_timestamp(uint32_t dbts);
+
int service_register_req(sdp_req_t *req, sdp_buf_t *rsp);
int service_update_req(sdp_req_t *req, sdp_buf_t *rsp);
int service_remove_req(sdp_req_t *req, sdp_buf_t *rsp);