🟣 Reyna v4
Path:
/
/
usr
/
include
Full Path (server): /usr/include
Create Folder
Create File
Upload File
Create WP Admin
📄 FlexLexer.h
[E]
[D]
[R]
📁 GL
Open
[D]
[R]
📁 X11
Open
[D]
[R]
📄 a.out.h
[E]
[D]
[R]
📄 aio.h
[E]
[D]
[R]
📄 aliases.h
[E]
[D]
[R]
📄 alloca.h
[E]
[D]
[R]
📄 ar.h
[E]
[D]
[R]
📄 argp.h
[E]
[D]
[R]
📄 argz.h
[E]
[D]
[R]
📁 arpa
Open
[D]
[R]
📁 asm
Open
[D]
[R]
📁 asm-generic
Open
[D]
[R]
📄 assert.h
[E]
[D]
[R]
📄 autosprintf.h
[E]
[D]
[R]
📄 autotest.h
[E]
[D]
[R]
📁 bind9
Open
[D]
[R]
📁 bits
Open
[D]
[R]
📁 blkid
Open
[D]
[R]
📁 brotli
Open
[D]
[R]
📁 bsock
Open
[D]
[R]
📄 byteswap.h
[E]
[D]
[R]
📄 bzlib.h
[E]
[D]
[R]
📁 c++
Open
[D]
[R]
📄 com_err.h
[E]
[D]
[R]
📄 complex.h
[E]
[D]
[R]
📄 cpio.h
[E]
[D]
[R]
📄 cpuidle.h
[E]
[D]
[R]
📁 criu-lve
Open
[D]
[R]
📄 crypt.h
[E]
[D]
[R]
📄 ctype.h
[E]
[D]
[R]
📄 curses.h
[E]
[D]
[R]
📄 cursesapp.h
[E]
[D]
[R]
📄 cursesf.h
[E]
[D]
[R]
📄 cursesm.h
[E]
[D]
[R]
📄 cursesp.h
[E]
[D]
[R]
📄 cursesw.h
[E]
[D]
[R]
📄 cursslk.h
[E]
[D]
[R]
📄 dbm.h
[E]
[D]
[R]
📄 dirent.h
[E]
[D]
[R]
📄 dlfcn.h
[E]
[D]
[R]
📁 drm
Open
[D]
[R]
📁 e2p
Open
[D]
[R]
📄 elf.h
[E]
[D]
[R]
📄 endian.h
[E]
[D]
[R]
📄 entities.h
[E]
[D]
[R]
📄 envz.h
[E]
[D]
[R]
📄 err.h
[E]
[D]
[R]
📄 errno.h
[E]
[D]
[R]
📄 error.h
[E]
[D]
[R]
📁 et
Open
[D]
[R]
📄 eti.h
[E]
[D]
[R]
📄 etip.h
[E]
[D]
[R]
📄 evdns.h
[E]
[D]
[R]
📄 event.h
[E]
[D]
[R]
📁 event2
Open
[D]
[R]
📄 evhttp.h
[E]
[D]
[R]
📄 evrpc.h
[E]
[D]
[R]
📄 evutil.h
[E]
[D]
[R]
📄 execinfo.h
[E]
[D]
[R]
📄 expat.h
[E]
[D]
[R]
📄 expat_config.h
[E]
[D]
[R]
📄 expat_external.h
[E]
[D]
[R]
📁 ext2fs
Open
[D]
[R]
📄 fcntl.h
[E]
[D]
[R]
📄 features-time64.h
[E]
[D]
[R]
📄 features.h
[E]
[D]
[R]
📄 fenv.h
[E]
[D]
[R]
📄 ffi-x86_64.h
[E]
[D]
[R]
📄 ffi.h
[E]
[D]
[R]
📄 ffitarget-x86_64.h
[E]
[D]
[R]
📄 ffitarget.h
[E]
[D]
[R]
📁 finclude
Open
[D]
[R]
📄 fmtmsg.h
[E]
[D]
[R]
📄 fnmatch.h
[E]
[D]
[R]
📁 fontconfig
Open
[D]
[R]
📄 form.h
[E]
[D]
[R]
📄 fpu_control.h
[E]
[D]
[R]
📁 freetype2
Open
[D]
[R]
📄 fstab.h
[E]
[D]
[R]
📁 fstrm
Open
[D]
[R]
📄 fstrm.h
[E]
[D]
[R]
📄 fts.h
[E]
[D]
[R]
📄 ftw.h
[E]
[D]
[R]
📁 fwctl
Open
[D]
[R]
📄 gconv.h
[E]
[D]
[R]
📄 gd.h
[E]
[D]
[R]
📄 gd_color_map.h
[E]
[D]
[R]
📄 gd_errors.h
[E]
[D]
[R]
📄 gd_io.h
[E]
[D]
[R]
📁 gdbm
Open
[D]
[R]
📄 gdbm.h
[E]
[D]
[R]
📄 gdcache.h
[E]
[D]
[R]
📄 gdfontg.h
[E]
[D]
[R]
📄 gdfontl.h
[E]
[D]
[R]
📄 gdfontmb.h
[E]
[D]
[R]
📄 gdfonts.h
[E]
[D]
[R]
📄 gdfontt.h
[E]
[D]
[R]
📄 gdfx.h
[E]
[D]
[R]
📄 gdpp.h
[E]
[D]
[R]
📄 getopt.h
[E]
[D]
[R]
📄 gettext-po.h
[E]
[D]
[R]
📁 gio-unix-2.0
Open
[D]
[R]
📁 glib-2.0
Open
[D]
[R]
📄 glob.h
[E]
[D]
[R]
📁 gnu
Open
[D]
[R]
📄 gnu-versions.h
[E]
[D]
[R]
📄 gnumake.h
[E]
[D]
[R]
📁 google
Open
[D]
[R]
📄 gpg-error.h
[E]
[D]
[R]
📄 gpgrt.h
[E]
[D]
[R]
📁 graphite2
Open
[D]
[R]
📄 grp.h
[E]
[D]
[R]
📄 gshadow.h
[E]
[D]
[R]
📁 gssapi
Open
[D]
[R]
📄 gssapi.h
[E]
[D]
[R]
📁 gssrpc
Open
[D]
[R]
📁 harfbuzz
Open
[D]
[R]
📄 iconv.h
[E]
[D]
[R]
📄 idn-free.h
[E]
[D]
[R]
📄 idn-int.h
[E]
[D]
[R]
📄 idna.h
[E]
[D]
[R]
📄 ieee754.h
[E]
[D]
[R]
📄 ifaddrs.h
[E]
[D]
[R]
📄 inttypes.h
[E]
[D]
[R]
📄 jconfig-64.h
[E]
[D]
[R]
📄 jconfig.h
[E]
[D]
[R]
📄 jerror.h
[E]
[D]
[R]
📄 jmorecfg.h
[E]
[D]
[R]
📄 jpegint.h
[E]
[D]
[R]
📄 jpeglib.h
[E]
[D]
[R]
📁 json-c
Open
[D]
[R]
📁 kadm5
Open
[D]
[R]
📄 kdb.h
[E]
[D]
[R]
📄 keyutils.h
[E]
[D]
[R]
📄 krad.h
[E]
[D]
[R]
📁 krb5
Open
[D]
[R]
📄 krb5.h
[E]
[D]
[R]
📄 langinfo.h
[E]
[D]
[R]
📄 lastlog.h
[E]
[D]
[R]
📄 libaio.h
[E]
[D]
[R]
📁 libexslt
Open
[D]
[R]
📄 libgen.h
[E]
[D]
[R]
📄 libintl.h
[E]
[D]
[R]
📁 libltdl
Open
[D]
[R]
📁 libmount
Open
[D]
[R]
📁 libpng16
Open
[D]
[R]
📁 libpq
Open
[D]
[R]
📄 libpq-events.h
[E]
[D]
[R]
📄 libpq-fe.h
[E]
[D]
[R]
📁 libxml2
Open
[D]
[R]
📁 libxslt
Open
[D]
[R]
📄 limits.h
[E]
[D]
[R]
📄 link.h
[E]
[D]
[R]
📁 linux
Open
[D]
[R]
📄 lmdb.h
[E]
[D]
[R]
📄 locale.h
[E]
[D]
[R]
📄 ltdl.h
[E]
[D]
[R]
📁 lzma
Open
[D]
[R]
📄 lzma.h
[E]
[D]
[R]
📄 malloc.h
[E]
[D]
[R]
📄 math.h
[E]
[D]
[R]
📄 maxminddb.h
[E]
[D]
[R]
📄 maxminddb_config-64.h
[E]
[D]
[R]
📄 maxminddb_config.h
[E]
[D]
[R]
📄 mcheck.h
[E]
[D]
[R]
📄 memory.h
[E]
[D]
[R]
📄 menu.h
[E]
[D]
[R]
📁 misc
Open
[D]
[R]
📄 mntent.h
[E]
[D]
[R]
📄 monetary.h
[E]
[D]
[R]
📄 mqueue.h
[E]
[D]
[R]
📁 mtd
Open
[D]
[R]
📁 mysql
Open
[D]
[R]
📄 nc_tparm.h
[E]
[D]
[R]
📁 ncurses
Open
[D]
[R]
📄 ncurses.h
[E]
[D]
[R]
📄 ncurses_dll.h
[E]
[D]
[R]
📁 ncursesw
Open
[D]
[R]
📄 ndbm.h
[E]
[D]
[R]
📁 net
Open
[D]
[R]
📁 netash
Open
[D]
[R]
📁 netatalk
Open
[D]
[R]
📁 netax25
Open
[D]
[R]
📄 netdb.h
[E]
[D]
[R]
📁 neteconet
Open
[D]
[R]
📁 netinet
Open
[D]
[R]
📁 netipx
Open
[D]
[R]
📁 netiucv
Open
[D]
[R]
📁 netpacket
Open
[D]
[R]
📁 netrom
Open
[D]
[R]
📁 netrose
Open
[D]
[R]
📁 nfs
Open
[D]
[R]
📄 nl_types.h
[E]
[D]
[R]
📄 nss.h
[E]
[D]
[R]
📄 obstack.h
[E]
[D]
[R]
📄 odbcinst.h
[E]
[D]
[R]
📄 odbcinstext.h
[E]
[D]
[R]
📁 openssl
Open
[D]
[R]
📄 panel.h
[E]
[D]
[R]
📄 paths.h
[E]
[D]
[R]
📁 pcp
Open
[D]
[R]
📄 pcre.h
[E]
[D]
[R]
📄 pcre2.h
[E]
[D]
[R]
📄 pcre2posix.h
[E]
[D]
[R]
📄 pcre_scanner.h
[E]
[D]
[R]
📄 pcre_stringpiece.h
[E]
[D]
[R]
📄 pcrecpp.h
[E]
[D]
[R]
📄 pcrecpparg.h
[E]
[D]
[R]
📄 pcreposix.h
[E]
[D]
[R]
📄 pg_config-x86_64.h
[E]
[D]
[R]
📄 pg_config.h
[E]
[D]
[R]
📄 pg_config_ext-x86_64.h
[E]
[D]
[R]
📄 pg_config_ext.h
[E]
[D]
[R]
📄 pg_config_manual.h
[E]
[D]
[R]
📄 pg_config_os.h
[E]
[D]
[R]
📁 pgsql
Open
[D]
[R]
📄 png.h
[E]
[D]
[R]
📄 pngconf.h
[E]
[D]
[R]
📄 pnglibconf.h
[E]
[D]
[R]
📄 poll.h
[E]
[D]
[R]
📄 postgres_ext.h
[E]
[D]
[R]
📄 powercap.h
[E]
[D]
[R]
📄 pr29.h
[E]
[D]
[R]
📄 printf.h
[E]
[D]
[R]
📄 proc_service.h
[E]
[D]
[R]
📄 profile.h
[E]
[D]
[R]
📁 protobuf-c
Open
[D]
[R]
📁 protocols
Open
[D]
[R]
📄 pthread.h
[E]
[D]
[R]
📄 pty.h
[E]
[D]
[R]
📄 punycode.h
[E]
[D]
[R]
📄 pwd.h
[E]
[D]
[R]
📁 python3.9
Open
[D]
[R]
📁 rdma
Open
[D]
[R]
📄 re_comp.h
[E]
[D]
[R]
📄 regex.h
[E]
[D]
[R]
📄 regexp.h
[E]
[D]
[R]
📄 resolv.h
[E]
[D]
[R]
📁 rpc
Open
[D]
[R]
📄 sched.h
[E]
[D]
[R]
📁 scsi
Open
[D]
[R]
📄 search.h
[E]
[D]
[R]
📁 security
Open
[D]
[R]
📁 selinux
Open
[D]
[R]
📄 semaphore.h
[E]
[D]
[R]
📁 sepol
Open
[D]
[R]
📄 setjmp.h
[E]
[D]
[R]
📄 sgtty.h
[E]
[D]
[R]
📄 shadow.h
[E]
[D]
[R]
📄 signal.h
[E]
[D]
[R]
📁 sound
Open
[D]
[R]
📄 spawn.h
[E]
[D]
[R]
📄 sql.h
[E]
[D]
[R]
📄 sqlext.h
[E]
[D]
[R]
📄 sqlspi.h
[E]
[D]
[R]
📄 sqltypes.h
[E]
[D]
[R]
📄 sqlucode.h
[E]
[D]
[R]
📄 stab.h
[E]
[D]
[R]
📄 stdc-predef.h
[E]
[D]
[R]
📄 stdint.h
[E]
[D]
[R]
📄 stdio.h
[E]
[D]
[R]
📄 stdio_ext.h
[E]
[D]
[R]
📄 stdlib.h
[E]
[D]
[R]
📄 string.h
[E]
[D]
[R]
📄 stringprep.h
[E]
[D]
[R]
📄 strings.h
[E]
[D]
[R]
📁 sys
Open
[D]
[R]
📄 syscall.h
[E]
[D]
[R]
📄 sysexits.h
[E]
[D]
[R]
📄 syslog.h
[E]
[D]
[R]
📁 sysprof-4
Open
[D]
[R]
📄 tar.h
[E]
[D]
[R]
📄 term.h
[E]
[D]
[R]
📄 term_entry.h
[E]
[D]
[R]
📄 termcap.h
[E]
[D]
[R]
📄 termio.h
[E]
[D]
[R]
📄 termios.h
[E]
[D]
[R]
📄 tgmath.h
[E]
[D]
[R]
📄 thread_db.h
[E]
[D]
[R]
📄 threads.h
[E]
[D]
[R]
📄 tic.h
[E]
[D]
[R]
📄 tiff.h
[E]
[D]
[R]
📄 tiffconf-64.h
[E]
[D]
[R]
📄 tiffconf.h
[E]
[D]
[R]
📄 tiffio.h
[E]
[D]
[R]
📄 tiffio.hxx
[E]
[D]
[R]
📄 tiffvers.h
[E]
[D]
[R]
📄 time.h
[E]
[D]
[R]
📄 tld.h
[E]
[D]
[R]
📄 ttyent.h
[E]
[D]
[R]
📄 uchar.h
[E]
[D]
[R]
📄 ucontext.h
[E]
[D]
[R]
📄 ulimit.h
[E]
[D]
[R]
📄 unctrl.h
[E]
[D]
[R]
📁 unicode
Open
[D]
[R]
📄 unistd.h
[E]
[D]
[R]
📁 unixODBC
Open
[D]
[R]
📄 unixodbc-x86_64.h
[E]
[D]
[R]
📄 unixodbc.h
[E]
[D]
[R]
📄 uodbc_extras.h
[E]
[D]
[R]
📄 uodbc_stats.h
[E]
[D]
[R]
📄 utime.h
[E]
[D]
[R]
📄 utmp.h
[E]
[D]
[R]
📄 utmpx.h
[E]
[D]
[R]
📄 values.h
[E]
[D]
[R]
📄 verto-module.h
[E]
[D]
[R]
📄 verto.h
[E]
[D]
[R]
📁 video
Open
[D]
[R]
📄 wait.h
[E]
[D]
[R]
📄 wchar.h
[E]
[D]
[R]
📄 wctype.h
[E]
[D]
[R]
📁 webp
Open
[D]
[R]
📄 wordexp.h
[E]
[D]
[R]
📁 xcb
Open
[D]
[R]
📁 xen
Open
[D]
[R]
📄 yaml.h
[E]
[D]
[R]
📄 zconf.h
[E]
[D]
[R]
📄 zlib.h
[E]
[D]
[R]
Editing: maxminddb.h
#ifdef __cplusplus extern "C" { #endif #ifndef MAXMINDDB_H #define MAXMINDDB_H /* Request POSIX.1-2008. However, we want to remain compatible with * POSIX.1-2001 (since we have been historically and see no reason to drop * compatibility). By requesting POSIX.1-2008, we can conditionally use * features provided by that standard if the implementation provides it. We can * check for what the implementation provides by checking the _POSIX_VERSION * macro after including unistd.h. If a feature is in POSIX.1-2008 but not * POSIX.1-2001, check that macro before using the feature (or check for the * feature directly if possible). */ #ifndef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200809L #endif #include "maxminddb_config.h" #include <stdarg.h> #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <sys/types.h> #ifdef _WIN32 #include <winsock2.h> #include <ws2tcpip.h> /* libmaxminddb package version from configure */ #define PACKAGE_VERSION "1.5.2" typedef ADDRESS_FAMILY sa_family_t; #if defined(_MSC_VER) /* MSVC doesn't define signed size_t, copy it from configure */ #define ssize_t SSIZE_T /* MSVC doesn't support restricted pointers */ #define restrict #endif #else #include <netdb.h> #include <netinet/in.h> #include <sys/socket.h> #endif #define MMDB_DATA_TYPE_EXTENDED (0) #define MMDB_DATA_TYPE_POINTER (1) #define MMDB_DATA_TYPE_UTF8_STRING (2) #define MMDB_DATA_TYPE_DOUBLE (3) #define MMDB_DATA_TYPE_BYTES (4) #define MMDB_DATA_TYPE_UINT16 (5) #define MMDB_DATA_TYPE_UINT32 (6) #define MMDB_DATA_TYPE_MAP (7) #define MMDB_DATA_TYPE_INT32 (8) #define MMDB_DATA_TYPE_UINT64 (9) #define MMDB_DATA_TYPE_UINT128 (10) #define MMDB_DATA_TYPE_ARRAY (11) #define MMDB_DATA_TYPE_CONTAINER (12) #define MMDB_DATA_TYPE_END_MARKER (13) #define MMDB_DATA_TYPE_BOOLEAN (14) #define MMDB_DATA_TYPE_FLOAT (15) #define MMDB_RECORD_TYPE_SEARCH_NODE (0) #define MMDB_RECORD_TYPE_EMPTY (1) #define MMDB_RECORD_TYPE_DATA (2) #define MMDB_RECORD_TYPE_INVALID (3) /* flags for open */ #define MMDB_MODE_MMAP (1) #define MMDB_MODE_MASK (7) /* error codes */ #define MMDB_SUCCESS (0) #define MMDB_FILE_OPEN_ERROR (1) #define MMDB_CORRUPT_SEARCH_TREE_ERROR (2) #define MMDB_INVALID_METADATA_ERROR (3) #define MMDB_IO_ERROR (4) #define MMDB_OUT_OF_MEMORY_ERROR (5) #define MMDB_UNKNOWN_DATABASE_FORMAT_ERROR (6) #define MMDB_INVALID_DATA_ERROR (7) #define MMDB_INVALID_LOOKUP_PATH_ERROR (8) #define MMDB_LOOKUP_PATH_DOES_NOT_MATCH_DATA_ERROR (9) #define MMDB_INVALID_NODE_NUMBER_ERROR (10) #define MMDB_IPV6_LOOKUP_IN_IPV4_DATABASE_ERROR (11) #if !(MMDB_UINT128_IS_BYTE_ARRAY) #if MMDB_UINT128_USING_MODE typedef unsigned int mmdb_uint128_t __attribute__((__mode__(TI))); #else typedef unsigned __int128 mmdb_uint128_t; #endif #endif /* This is a pointer into the data section for a given IP address lookup */ typedef struct MMDB_entry_s { const struct MMDB_s *mmdb; uint32_t offset; } MMDB_entry_s; typedef struct MMDB_lookup_result_s { bool found_entry; MMDB_entry_s entry; uint16_t netmask; } MMDB_lookup_result_s; typedef struct MMDB_entry_data_s { bool has_data; union { uint32_t pointer; const char *utf8_string; double double_value; const uint8_t *bytes; uint16_t uint16; uint32_t uint32; int32_t int32; uint64_t uint64; #if MMDB_UINT128_IS_BYTE_ARRAY uint8_t uint128[16]; #else mmdb_uint128_t uint128; #endif bool boolean; float float_value; }; /* This is a 0 if a given entry cannot be found. This can only happen * when a call to MMDB_(v)get_value() asks for hash keys or array * indices that don't exist. */ uint32_t offset; /* This is the next entry in the data section, but it's really only * relevant for entries that part of a larger map or array * struct. There's no good reason for an end user to look at this * directly. */ uint32_t offset_to_next; /* This is only valid for strings, utf8_strings or binary data */ uint32_t data_size; /* This is an MMDB_DATA_TYPE_* constant */ uint32_t type; } MMDB_entry_data_s; /* This is the return type when someone asks for all the entry data in a map or * array */ typedef struct MMDB_entry_data_list_s { MMDB_entry_data_s entry_data; struct MMDB_entry_data_list_s *next; void *pool; } MMDB_entry_data_list_s; typedef struct MMDB_description_s { const char *language; const char *description; } MMDB_description_s; /* WARNING: do not add new fields to this struct without bumping the SONAME. * The struct is allocated by the users of this library and increasing the * size will cause existing users to allocate too little space when the shared * library is upgraded */ typedef struct MMDB_metadata_s { uint32_t node_count; uint16_t record_size; uint16_t ip_version; const char *database_type; struct { size_t count; const char **names; } languages; uint16_t binary_format_major_version; uint16_t binary_format_minor_version; uint64_t build_epoch; struct { size_t count; MMDB_description_s **descriptions; } description; /* See above warning before adding fields */ } MMDB_metadata_s; /* WARNING: do not add new fields to this struct without bumping the SONAME. * The struct is allocated by the users of this library and increasing the * size will cause existing users to allocate too little space when the shared * library is upgraded */ typedef struct MMDB_ipv4_start_node_s { uint16_t netmask; uint32_t node_value; /* See above warning before adding fields */ } MMDB_ipv4_start_node_s; /* WARNING: do not add new fields to this struct without bumping the SONAME. * The struct is allocated by the users of this library and increasing the * size will cause existing users to allocate too little space when the shared * library is upgraded */ typedef struct MMDB_s { uint32_t flags; const char *filename; ssize_t file_size; const uint8_t *file_content; const uint8_t *data_section; uint32_t data_section_size; const uint8_t *metadata_section; uint32_t metadata_section_size; uint16_t full_record_byte_size; uint16_t depth; MMDB_ipv4_start_node_s ipv4_start_node; MMDB_metadata_s metadata; /* See above warning before adding fields */ } MMDB_s; typedef struct MMDB_search_node_s { uint64_t left_record; uint64_t right_record; uint8_t left_record_type; uint8_t right_record_type; MMDB_entry_s left_record_entry; MMDB_entry_s right_record_entry; } MMDB_search_node_s; extern int MMDB_open(const char *const filename, uint32_t flags, MMDB_s *const mmdb); extern MMDB_lookup_result_s MMDB_lookup_string(const MMDB_s *const mmdb, const char *const ipstr, int *const gai_error, int *const mmdb_error); extern MMDB_lookup_result_s MMDB_lookup_sockaddr(const MMDB_s *const mmdb, const struct sockaddr *const sockaddr, int *const mmdb_error); extern int MMDB_read_node(const MMDB_s *const mmdb, uint32_t node_number, MMDB_search_node_s *const node); extern int MMDB_get_value(MMDB_entry_s *const start, MMDB_entry_data_s *const entry_data, ...); extern int MMDB_vget_value(MMDB_entry_s *const start, MMDB_entry_data_s *const entry_data, va_list va_path); extern int MMDB_aget_value(MMDB_entry_s *const start, MMDB_entry_data_s *const entry_data, const char *const *const path); extern int MMDB_get_metadata_as_entry_data_list( const MMDB_s *const mmdb, MMDB_entry_data_list_s **const entry_data_list); extern int MMDB_get_entry_data_list(MMDB_entry_s *start, MMDB_entry_data_list_s **const entry_data_list); extern void MMDB_free_entry_data_list(MMDB_entry_data_list_s *const entry_data_list); extern void MMDB_close(MMDB_s *const mmdb); extern const char *MMDB_lib_version(void); extern int MMDB_dump_entry_data_list(FILE *const stream, MMDB_entry_data_list_s *const entry_data_list, int indent); extern const char *MMDB_strerror(int error_code); #endif /* MAXMINDDB_H */ #ifdef __cplusplus } #endif
Save