Extend the GAS server functionality to allow a request handler to return the initial comeback delay with a later callback instead of having to indicate the comeback delay when returning from the handler function. Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
52 lines
1.6 KiB
C
52 lines
1.6 KiB
C
/*
|
|
* Generic advertisement service (GAS) server
|
|
* Copyright (c) 2017, Qualcomm Atheros, Inc.
|
|
* Copyright (c) 2020, The Linux Foundation
|
|
* Copyright (c) 2022, Qualcomm Innovation Center, Inc.
|
|
*
|
|
* This software may be distributed under the terms of the BSD license.
|
|
* See README for more details.
|
|
*/
|
|
|
|
#ifndef GAS_SERVER_H
|
|
#define GAS_SERVER_H
|
|
|
|
#ifdef CONFIG_GAS_SERVER
|
|
|
|
struct gas_server;
|
|
|
|
struct gas_server * gas_server_init(void *ctx,
|
|
void (*tx)(void *ctx, int freq,
|
|
const u8 *da,
|
|
struct wpabuf *buf,
|
|
unsigned int wait_time));
|
|
void gas_server_deinit(struct gas_server *gas);
|
|
int gas_server_register(struct gas_server *gas,
|
|
const u8 *adv_proto_id, u8 adv_proto_id_len,
|
|
struct wpabuf *
|
|
(*req_cb)(void *ctx, void *resp_ctx, const u8 *sa,
|
|
const u8 *query, size_t query_len,
|
|
int *comeback_delay),
|
|
void (*status_cb)(void *ctx, struct wpabuf *resp,
|
|
int ok),
|
|
void *ctx);
|
|
int gas_server_rx(struct gas_server *gas, const u8 *da, const u8 *sa,
|
|
const u8 *bssid, u8 categ, const u8 *data, size_t len,
|
|
int freq);
|
|
void gas_server_tx_status(struct gas_server *gas, const u8 *dst, const u8 *data,
|
|
size_t data_len, int ack);
|
|
int gas_server_set_comeback_delay(struct gas_server *gas, void *resp_ctx,
|
|
u16 comeback_delay);
|
|
int gas_server_set_resp(struct gas_server *gas, void *resp_ctx,
|
|
struct wpabuf *resp);
|
|
bool gas_server_response_sent(struct gas_server *gas, void *resp_ctx);
|
|
|
|
#else /* CONFIG_GAS_SERVER */
|
|
|
|
static inline void gas_server_deinit(struct gas_server *gas)
|
|
{
|
|
}
|
|
|
|
#endif /* CONFIG_GAS_SERVER */
|
|
|
|
#endif /* GAS_SERVER_H */
|