libUPnP  1.8.0
miniserver.h
1 /************************************************************************
2  *
3  * Copyright (c) 2000-2003 Intel Corporation
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * * Redistributions of source code must retain the above copyright notice,
10  * this list of conditions and the following disclaimer.
11  * * Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  * Neither name of Intel Corporation nor the names of its contributors
15  * may be used to endorse or promote products derived from this software
16  * without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR
22  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  *
30  ************************************************************************/
31 
32 #ifndef MINISERVER_H
33 #define MINISERVER_H
34 
35 
36 #include "sock.h"
37 #include "httpparser.h"
38 
39 
40 extern SOCKET gMiniServerStopSock;
41 
42 
43 typedef struct MServerSockArray {
44  /* socket for listening for miniserver requests */
45  SOCKET miniServerSock4;
46  SOCKET miniServerSock6;
47  /* socket for stopping miniserver */
48  SOCKET miniServerStopSock;
49  /* socket for incoming advertisments and search requests */
50  SOCKET ssdpSock4;
51  SOCKET ssdpSock6;
52 
53  SOCKET stopPort;
54  SOCKET miniServerPort4;
55  SOCKET miniServerPort6;
56 
57  /* socket for sending search requests and receiving search replies */
58  CLIENTONLY(SOCKET ssdpReqSock4;)
59  CLIENTONLY(SOCKET ssdpReqSock6;)
61 
62 
63 typedef void (*MiniServerCallback)(
64  IN http_parser_t *parser,
65  IN http_message_t* request,
66  IN SOCKINFO *info );
67 
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif
72 
73 
79  MiniServerCallback callback);
80 
81 
85 #ifdef INCLUDE_DEVICE_APIS
86 void SetSoapCallback(
88  MiniServerCallback callback);
89 #else /* INCLUDE_DEVICE_APIS */
90 static inline void SetSoapCallback(MiniServerCallback callback) {}
91 #endif /* INCLUDE_DEVICE_APIS */
92 
93 
97 void SetGenaCallback(
99  MiniServerCallback callback);
100 
101 
117 int StartMiniServer(
119  unsigned short *listen_port4,
121  unsigned short *listen_port6);
122 
123 
129 int StopMiniServer();
130 
131 
132 #ifdef __cplusplus
133 } /* extern C */
134 #endif
135 
136 
137 #endif /* MINISERVER_H */
138 
void SetGenaCallback(MiniServerCallback callback)
Set GENA Callback.
Definition: miniserver.c:112
Definition: miniserver.h:43
Definition: httpparser.h:178
int StartMiniServer(unsigned short *listen_port4, unsigned short *listen_port6)
Initialize the sockets functionality for the Miniserver.
Definition: miniserver.c:856
void SetSoapCallback(MiniServerCallback callback)
Set SOAP Callback.
Definition: miniserver.c:106
int StopMiniServer()
Stop and Shutdown the MiniServer and free socket resources.
Definition: miniserver.c:979
void SetHTTPGetCallback(MiniServerCallback callback)
Set HTTP Get Callback.
Definition: miniserver.c:99
Definition: sock.h:55
Definition: httpparser.h:206