"Fossies" - the Fresh Open Source Software Archive

Member "uriparser-0.9.7/include/uriparser/UriIp4.h" (5 Oct 2022, 3460 Bytes) of package /linux/www/uriparser-0.9.7.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "UriIp4.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 0.9.3_vs_0.9.4.

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