libwebsockets
Lightweight C library for HTML5 websockets
Toggle main menu visibility
Loading...
Searching...
No Matches
lws-whois.h
Go to the documentation of this file.
1
/*
2
* libwebsockets - small server side websockets and web server implementation
3
*
4
* Copyright (C) 2010 - 2026 Andy Green <andy@warmcat.com>
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
* SOFTWARE.
23
*/
24
25
#ifndef _LWS_WHOIS_H
26
#define _LWS_WHOIS_H
27
32
33
/* hard cap on the size of lws_whois_json_purify() canonical output */
34
#define LWS_WHOIS_CANON_MAX 4096
35
36
/* the deadline for a whole query, if lws_whois_args.timeout_ms is 0 */
37
#define LWS_WHOIS_TIMEOUT_DEFAULT_MS (20 * 1000)
38
/* an answer from one whois server larger than this fails the query */
39
#define LWS_WHOIS_ANSWER_MAX (64 * 1024)
40
41
struct
lws_whois_results
{
42
lws_usec_t
creation_date
;
43
lws_usec_t
expiry_date
;
44
lws_usec_t
updated_date
;
45
char
nameservers
[256];
47
char
dnssec
[64];
48
char
ds_data
[512];
49
uint8_t
nameservers_dropped
;
52
};
53
54
typedef
void (*
lws_whois_cb_t
)(
void
*opaque,
const
struct
lws_whois_results
*res);
55
56
struct
lws_whois_args
{
57
struct
lws_context *
context
;
59
const
char
*
domain
;
61
const
char
*
server
;
64
lws_whois_cb_t
cb
;
70
void
*
opaque
;
72
uint16_t
port
;
75
uint32_t
timeout_ms
;
80
};
81
91
#if defined(LWS_WITH_SYS_WHOIS)
92
LWS_VISIBLE
LWS_EXTERN
int
93
lws_whois_query
(
const
struct
lws_whois_args
*args);
94
#else
95
#define lws_whois_query(_a) (1)
96
#endif
97
123
#if defined(LWS_WITH_SYS_WHOIS)
124
LWS_VISIBLE
LWS_EXTERN
int
125
lws_whois_json_purify
(
char
*out,
size_t
out_len,
const
char
*in,
126
size_t
in_len,
int
*problems);
127
#else
128
#define lws_whois_json_purify(_o, _ol, _i, _il, _p) ((void)(_o), -1)
129
#endif
130
152
#if defined(LWS_WITH_SYS_WHOIS)
153
LWS_VISIBLE
LWS_EXTERN
int
154
lws_whois_results_to_json
(
char
*out,
size_t
out_len,
155
const
struct
lws_whois_results
*res,
int
*problems);
156
#else
157
#define lws_whois_results_to_json(_o, _ol, _r, _p) ((void)(_o), -1)
158
#endif
159
161
162
#endif
/* _LWS_WHOIS_H */
lws_whois_results::dnssec
char dnssec[64]
Definition
lws-whois.h:47
lws_whois_results::nameservers
char nameservers[256]
Definition
lws-whois.h:45
lws_whois_results::nameservers_dropped
uint8_t nameservers_dropped
Definition
lws-whois.h:49
lws_whois_results::ds_data
char ds_data[512]
Definition
lws-whois.h:48
lws_whois_results::updated_date
lws_usec_t updated_date
Definition
lws-whois.h:44
lws_whois_args::timeout_ms
uint32_t timeout_ms
Definition
lws-whois.h:75
lws_whois_args::port
uint16_t port
Definition
lws-whois.h:72
lws_whois_results::expiry_date
lws_usec_t expiry_date
Definition
lws-whois.h:43
lws_whois_args::cb
lws_whois_cb_t cb
Definition
lws-whois.h:64
lws_whois_args::domain
const char * domain
Definition
lws-whois.h:59
lws_whois_args::server
const char * server
Definition
lws-whois.h:61
lws_whois_args::opaque
void * opaque
Definition
lws-whois.h:70
lws_whois_results::creation_date
lws_usec_t creation_date
Definition
lws-whois.h:42
lws_whois_args::context
struct lws_context * context
Definition
lws-whois.h:57
lws_whois_json_purify
#define lws_whois_json_purify(_o, _ol, _i, _il, _p)
Definition
lws-whois.h:128
lws_whois_results_to_json
#define lws_whois_results_to_json(_o, _ol, _r, _p)
Definition
lws-whois.h:157
lws_whois_query
#define lws_whois_query(_a)
Definition
lws-whois.h:95
lws_whois_cb_t
void(* lws_whois_cb_t)(void *opaque, const struct lws_whois_results *res)
Definition
lws-whois.h:54
lws_whois_args
Definition
lws-whois.h:56
lws_whois_results
Definition
lws-whois.h:41
uint16_t
unsigned short uint16_t
Definition
libwebsockets.h:745
uint32_t
unsigned int uint32_t
Definition
libwebsockets.h:744
LWS_EXTERN
#define LWS_EXTERN
Definition
libwebsockets.h:327
lws_usec_t
int64_t lws_usec_t
Definition
libwebsockets.h:750
uint8_t
unsigned char uint8_t
Definition
libwebsockets.h:746
LWS_VISIBLE
#define LWS_VISIBLE
Definition
libwebsockets.h:322
include
libwebsockets
lws-whois.h
Generated on
for libwebsockets by
1.19.0