1df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt/*
2df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt * Hotspot 2.0 SPP server
3df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt * Copyright (c) 2012-2013, Qualcomm Atheros, Inc.
4df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt *
5df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt * This software may be distributed under the terms of the BSD license.
6df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt * See README for more details.
7df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt */
8df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt
9df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt#ifndef SPP_SERVER_H
10df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt#define SPP_SERVER_H
11df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt
12df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidtstruct hs20_svc {
13df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt	const void *ctx;
14df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt	struct xml_node_ctx *xml;
15df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt	char *root_dir;
16df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt	FILE *debug_log;
17df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt	sqlite3 *db;
18df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt	const char *addr;
19df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt};
20df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt
21df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt
22df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidtvoid debug_print(struct hs20_svc *ctx, int print, const char *fmt, ...)
23df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt	__attribute__ ((format (printf, 3, 4)));
24df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidtvoid debug_dump_node(struct hs20_svc *ctx, const char *title, xml_node_t *node);
25df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt
26df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidtxml_node_t * hs20_spp_server_process(struct hs20_svc *ctx, xml_node_t *node,
27df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt				     const char *auth_user,
28df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt				     const char *auth_realm, int dmacc);
29df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidtint hs20_spp_server_init(struct hs20_svc *ctx);
30df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidtvoid hs20_spp_server_deinit(struct hs20_svc *ctx);
31df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt
32df5a7e4c5c64890c2425bb47d665bbce4992b676Dmitry Shmidt#endif /* SPP_SERVER_H */
33