libwebsockets
Lightweight C library for HTML5 websockets
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
53
54typedef void (*lws_whois_cb_t)(void *opaque, const struct lws_whois_results *res);
55
57 struct lws_context *context;
59 const char *domain;
61 const char *server;
70 void *opaque;
80};
81
91#if defined(LWS_WITH_SYS_WHOIS)
93lws_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)
125lws_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)
154lws_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 */
char dnssec[64]
Definition lws-whois.h:47
char nameservers[256]
Definition lws-whois.h:45
uint8_t nameservers_dropped
Definition lws-whois.h:49
char ds_data[512]
Definition lws-whois.h:48
lws_usec_t updated_date
Definition lws-whois.h:44
uint32_t timeout_ms
Definition lws-whois.h:75
uint16_t port
Definition lws-whois.h:72
lws_usec_t expiry_date
Definition lws-whois.h:43
lws_whois_cb_t cb
Definition lws-whois.h:64
const char * domain
Definition lws-whois.h:59
const char * server
Definition lws-whois.h:61
void * opaque
Definition lws-whois.h:70
lws_usec_t creation_date
Definition lws-whois.h:42
struct lws_context * context
Definition lws-whois.h:57
#define lws_whois_json_purify(_o, _ol, _i, _il, _p)
Definition lws-whois.h:128
#define lws_whois_results_to_json(_o, _ol, _r, _p)
Definition lws-whois.h:157
#define lws_whois_query(_a)
Definition lws-whois.h:95
void(* lws_whois_cb_t)(void *opaque, const struct lws_whois_results *res)
Definition lws-whois.h:54
unsigned short uint16_t
unsigned int uint32_t
#define LWS_EXTERN
int64_t lws_usec_t
unsigned char uint8_t
#define LWS_VISIBLE