annotate liburiparser/include/uriparser/UriIp4.h @ 76:0bd0077049ff

misc: prefix everything with lib
author David Demelier <markand@malikania.fr>
date Fri, 23 Nov 2018 21:43:06 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
76
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * uriparser - RFC 3986 URI parsing library
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (C) 2007, Weijia Song <songweijia@gmail.com>
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 * Copyright (C) 2007, Sebastian Pipping <sebastian@pipping.org>
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * All rights reserved.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 *
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * Redistribution and use in source and binary forms, with or without
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 * modification, are permitted provided that the following conditions
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * are met:
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 *
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * * Redistributions of source code must retain the above
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * copyright notice, this list of conditions and the following
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * disclaimer.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 *
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * * Redistributions in binary form must reproduce the above
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 * copyright notice, this list of conditions and the following
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 * disclaimer in the documentation and/or other materials
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 * provided with the distribution.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 *
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 * * Neither the name of the <ORGANIZATION> nor the names of its
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 * contributors may be used to endorse or promote products
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 * derived from this software without specific prior written
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 * permission.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 *
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 * OF THE POSSIBILITY OF SUCH DAMAGE.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 */
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
39
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 /**
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 * @file UriIp4.h
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 * Holds the IPv4 parser interface.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 * NOTE: This header includes itself twice.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 */
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
45
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 #if (defined(URI_PASS_ANSI) && !defined(URI_IP4_TWICE_H_ANSI)) \
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 || (defined(URI_PASS_UNICODE) && !defined(URI_IP4_TWICE_H_UNICODE)) \
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 || (!defined(URI_PASS_ANSI) && !defined(URI_PASS_UNICODE))
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 /* What encodings are enabled? */
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 #include "UriDefsConfig.h"
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 #if (!defined(URI_PASS_ANSI) && !defined(URI_PASS_UNICODE))
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 /* Include SELF twice */
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 # ifdef URI_ENABLE_ANSI
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 # define URI_PASS_ANSI 1
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 # include "UriIp4.h"
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 # undef URI_PASS_ANSI
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 # endif
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 # ifdef URI_ENABLE_UNICODE
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 # define URI_PASS_UNICODE 1
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 # include "UriIp4.h"
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 # undef URI_PASS_UNICODE
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 # endif
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 /* Only one pass for each encoding */
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 #elif (defined(URI_PASS_ANSI) && !defined(URI_IP4_TWICE_H_ANSI) \
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 && defined(URI_ENABLE_ANSI)) || (defined(URI_PASS_UNICODE) \
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 && !defined(URI_IP4_TWICE_H_UNICODE) && defined(URI_ENABLE_UNICODE))
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 # ifdef URI_PASS_ANSI
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 # define URI_IP4_TWICE_H_ANSI 1
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 # include "UriDefsAnsi.h"
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 # else
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 # define URI_IP4_TWICE_H_UNICODE 1
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 # include "UriDefsUnicode.h"
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 # include <wchar.h>
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 # endif
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
75
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
77
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 /**
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 * Converts a IPv4 text representation into four bytes.
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 *
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 * @param octetOutput Output destination
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 * @param first First character of IPv4 text to parse
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
83 * @param afterLast Position to stop parsing at
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 * @return Error code or 0 on success
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 */
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 int URI_FUNC(ParseIpFourAddress)(unsigned char * octetOutput,
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 const URI_CHAR * first, const URI_CHAR * afterLast);
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
88
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
89
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
90
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 #endif
0bd0077049ff misc: prefix everything with lib
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 #endif