Linux amd.servercpanel.com 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64
LiteSpeed
Server IP : 161.248.188.165 & Your IP : 216.73.216.219
Domains :
Cant Read [ /etc/named.conf ]
User : oishifashion
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
include /
Delete
Unzip
Name
Size
Permission
Date
Action
GL
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
X11
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
arpa
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
asm
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
asm-generic
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
bind9
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
bits
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
blkid
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
brotli
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
bsock
[ DIR ]
drwxr-xr-x
2025-07-16 12:33
c++
[ DIR ]
drwxr-xr-x
2025-07-15 16:48
curl
[ DIR ]
drwxr-xr-x
2025-07-15 16:46
drm
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
e2p
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
et
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
event2
[ DIR ]
drwxr-xr-x
2025-07-15 16:57
ext2fs
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
finclude
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
fontconfig
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
freetype2
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
fstrm
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
gdbm
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
gio-unix-2.0
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
glib-2.0
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
gnu
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
google
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
graphite2
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
gssapi
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
gssrpc
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
harfbuzz
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
json-c
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
kadm5
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
krb5
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
libexslt
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
libltdl
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
libmount
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
libpng16
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
libxml2
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
libxslt
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
linux
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
lzma
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
misc
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
mtd
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
mysql
[ DIR ]
drwxr-xr-x
2025-11-19 14:08
ncurses
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
ncursesw
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
net
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netash
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netatalk
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netax25
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
neteconet
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netinet
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netipx
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netiucv
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netpacket
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netrom
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
netrose
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
nfs
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
openssl
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
pcp
[ DIR ]
drwxr-xr-x
2025-07-15 16:50
protobuf-c
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
protocols
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
python3.9
[ DIR ]
drwxr-xr-x
2025-07-15 16:57
rdma
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
rpc
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
scsi
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
security
[ DIR ]
drwxr-xr-x
2025-07-15 16:52
selinux
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
sepol
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
sound
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
sys
[ DIR ]
drwxr-xr-x
2025-07-18 01:16
sysprof-4
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
unicode
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
video
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
webp
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
xcb
[ DIR ]
drwxr-xr-x
2025-07-15 17:04
xen
[ DIR ]
drwxr-xr-x
2025-07-15 16:49
FlexLexer.h
6.73
KB
-rw-r--r--
2022-01-30 08:23
a.out.h
4.25
KB
-rw-r--r--
2025-05-13 16:37
aio.h
7.56
KB
-rw-r--r--
2025-05-13 16:37
aliases.h
1.98
KB
-rw-r--r--
2025-05-13 16:37
alloca.h
1.17
KB
-rw-r--r--
2025-05-13 16:37
ar.h
1.69
KB
-rw-r--r--
2025-05-13 16:37
argp.h
24.95
KB
-rw-r--r--
2025-05-13 16:37
argz.h
5.91
KB
-rw-r--r--
2025-05-13 16:37
assert.h
4.46
KB
-rw-r--r--
2025-05-13 16:37
autosprintf.h
2.36
KB
-rw-r--r--
2023-09-27 06:51
byteswap.h
1.42
KB
-rw-r--r--
2025-05-13 16:37
bzlib.h
6.09
KB
-rw-r--r--
2019-07-13 17:50
com_err.h
2.07
KB
-rw-r--r--
2021-12-30 05:54
complex.h
7.95
KB
-rw-r--r--
2025-05-13 16:37
cpio.h
2.21
KB
-rw-r--r--
2025-05-13 16:37
cpuidle.h
931
B
-rw-r--r--
2025-07-09 09:27
crypt.h
10.9
KB
-rw-r--r--
2022-02-10 04:05
ctype.h
10.71
KB
-rw-r--r--
2025-05-13 16:37
curses.h
96.82
KB
-rw-r--r--
2023-09-27 03:05
cursesapp.h
7.06
KB
-rw-r--r--
2023-09-27 03:05
cursesf.h
27.37
KB
-rw-r--r--
2023-09-27 03:05
cursesm.h
19.44
KB
-rw-r--r--
2023-09-27 03:05
cursesp.h
8.55
KB
-rw-r--r--
2023-09-27 03:05
cursesw.h
49.13
KB
-rw-r--r--
2023-09-27 03:05
cursslk.h
7.15
KB
-rw-r--r--
2023-09-27 03:05
dbm.h
1.37
KB
-rw-r--r--
2022-01-02 08:34
dirent.h
12.32
KB
-rw-r--r--
2025-05-13 16:37
dlfcn.h
7.52
KB
-rw-r--r--
2025-05-13 16:37
elf.h
178.26
KB
-rw-r--r--
2025-05-13 16:38
endian.h
2.25
KB
-rw-r--r--
2025-05-13 16:37
entities.h
4.81
KB
-rw-r--r--
2021-01-12 00:09
envz.h
2.8
KB
-rw-r--r--
2025-05-13 16:37
err.h
2.29
KB
-rw-r--r--
2025-05-13 16:37
errno.h
1.64
KB
-rw-r--r--
2025-05-13 16:37
error.h
2.36
KB
-rw-r--r--
2025-05-13 16:37
eti.h
2.9
KB
-rw-r--r--
2023-09-27 03:05
etip.h
9.61
KB
-rw-r--r--
2023-09-27 03:05
evdns.h
1.97
KB
-rw-r--r--
2019-01-26 09:53
event.h
2.68
KB
-rw-r--r--
2019-01-26 09:53
evhttp.h
1.99
KB
-rw-r--r--
2019-01-26 09:53
evrpc.h
1.97
KB
-rw-r--r--
2019-01-26 09:53
evutil.h
1.74
KB
-rw-r--r--
2019-01-26 09:53
execinfo.h
1.49
KB
-rw-r--r--
2025-05-13 16:37
expat.h
42.75
KB
-rw-r--r--
2025-05-13 17:53
expat_config.h
3.82
KB
-rw-r--r--
2025-05-13 17:53
expat_external.h
5.89
KB
-rw-r--r--
2022-10-25 15:08
fcntl.h
11.17
KB
-rw-r--r--
2025-05-13 16:37
features-time64.h
1.37
KB
-rw-r--r--
2025-05-13 16:37
features.h
17.69
KB
-rw-r--r--
2025-05-13 16:37
fenv.h
5.65
KB
-rw-r--r--
2025-05-13 16:37
ffi-x86_64.h
13.88
KB
-rw-r--r--
2023-09-25 19:54
ffi.h
556
B
-rw-r--r--
2023-09-25 19:54
ffitarget-x86_64.h
4.63
KB
-rw-r--r--
2023-09-25 19:54
ffitarget.h
616
B
-rw-r--r--
2023-09-25 19:54
fmtmsg.h
3.16
KB
-rw-r--r--
2025-05-13 16:37
fnmatch.h
2.24
KB
-rw-r--r--
2025-05-13 16:37
form.h
18.46
KB
-rw-r--r--
2023-09-27 03:05
fpu_control.h
3.5
KB
-rw-r--r--
2025-05-13 16:37
fstab.h
3.04
KB
-rw-r--r--
2025-05-13 16:37
fstrm.h
12.71
KB
-rw-r--r--
2019-03-11 20:58
fts.h
9.35
KB
-rw-r--r--
2025-05-13 16:37
ftw.h
6.19
KB
-rw-r--r--
2025-05-13 16:37
gconv.h
4.11
KB
-rw-r--r--
2025-05-13 16:37
gd.h
58.25
KB
-rw-r--r--
2021-03-06 18:21
gd_color_map.h
478
B
-rw-r--r--
2021-01-12 00:09
gd_errors.h
1.47
KB
-rw-r--r--
2021-01-12 00:09
gd_io.h
2.93
KB
-rw-r--r--
2021-03-03 07:15
gdbm.h
11.9
KB
-rw-r--r--
2024-10-02 21:50
gdcache.h
2.92
KB
-rw-r--r--
2021-03-03 07:15
gdfontg.h
553
B
-rw-r--r--
2021-01-12 00:09
gdfontl.h
551
B
-rw-r--r--
2021-01-12 00:09
gdfontmb.h
519
B
-rw-r--r--
2021-01-12 00:09
gdfonts.h
515
B
-rw-r--r--
2021-01-12 00:09
gdfontt.h
546
B
-rw-r--r--
2021-01-12 00:09
gdfx.h
496
B
-rw-r--r--
2021-02-21 17:23
gdpp.h
50.73
KB
-rw-r--r--
2021-03-03 07:15
getopt.h
1.43
KB
-rw-r--r--
2025-05-13 16:37
gettext-po.h
15.18
KB
-rw-r--r--
2023-09-27 06:52
glob.h
7.13
KB
-rw-r--r--
2025-05-13 16:37
gnu-versions.h
2.29
KB
-rw-r--r--
2025-05-13 16:37
gnumake.h
2.84
KB
-rw-r--r--
2020-01-03 07:11
gpg-error.h
71.92
KB
-rw-r--r--
2022-02-09 23:24
gpgrt.h
71.92
KB
-rw-r--r--
2022-02-09 23:24
grp.h
6.53
KB
-rw-r--r--
2025-05-13 16:37
gshadow.h
4.42
KB
-rw-r--r--
2025-05-13 16:37
gssapi.h
181
B
-rw-r--r--
2023-07-10 20:58
iconv.h
1.81
KB
-rw-r--r--
2025-05-13 16:37
idn-free.h
2.56
KB
-rw-r--r--
2021-07-22 13:31
idn-int.h
20
B
-rw-r--r--
2022-02-14 15:33
idna.h
3.89
KB
-rw-r--r--
2021-07-22 13:31
ieee754.h
4.8
KB
-rw-r--r--
2025-05-13 16:37
ifaddrs.h
2.77
KB
-rw-r--r--
2025-05-13 16:37
inttypes.h
8.14
KB
-rw-r--r--
2025-05-13 16:37
jconfig-64.h
1.98
KB
-rw-r--r--
2024-04-01 19:06
jconfig.h
246
B
-rw-r--r--
2024-04-01 19:06
jerror.h
15.35
KB
-rw-r--r--
2020-11-25 03:56
jmorecfg.h
13.98
KB
-rw-r--r--
2020-11-25 03:56
jpegint.h
15.25
KB
-rw-r--r--
2020-11-25 03:56
jpeglib.h
49.1
KB
-rw-r--r--
2020-11-25 03:56
kdb.h
62.83
KB
-rw-r--r--
2025-06-24 12:42
keyutils.h
11.52
KB
-rw-r--r--
2023-04-05 19:15
krad.h
8.72
KB
-rw-r--r--
2023-07-10 20:58
krb5.h
402
B
-rw-r--r--
2023-07-10 20:58
langinfo.h
17.43
KB
-rw-r--r--
2025-05-13 16:37
lastlog.h
126
B
-rw-r--r--
2025-05-13 16:38
libaio.h
8.75
KB
-rw-r--r--
2022-02-09 19:07
libgen.h
1.35
KB
-rw-r--r--
2025-05-13 16:37
libintl.h
4.47
KB
-rw-r--r--
2025-05-13 16:37
limits.h
5.57
KB
-rw-r--r--
2025-05-13 16:37
link.h
7.05
KB
-rw-r--r--
2025-05-13 16:38
lmdb.h
72.28
KB
-rw-r--r--
2021-03-16 16:41
locale.h
7.5
KB
-rw-r--r--
2025-05-13 16:37
ltdl.h
5.58
KB
-rw-r--r--
2024-10-01 17:49
lzma.h
9.63
KB
-rw-r--r--
2020-03-17 14:28
malloc.h
5.77
KB
-rw-r--r--
2025-05-13 16:37
math.h
47.63
KB
-rw-r--r--
2025-05-13 16:37
maxminddb.h
8.34
KB
-rw-r--r--
2021-02-18 17:04
maxminddb_config-64.h
504
B
-rw-r--r--
2024-10-01 16:54
maxminddb_config.h
178
B
-rw-r--r--
2024-10-01 16:54
mcheck.h
2.38
KB
-rw-r--r--
2025-05-13 16:37
memory.h
956
B
-rw-r--r--
2025-05-13 16:37
menu.h
11.6
KB
-rw-r--r--
2023-09-27 03:05
mntent.h
3.28
KB
-rw-r--r--
2025-05-13 16:37
monetary.h
1.92
KB
-rw-r--r--
2025-05-13 16:37
mqueue.h
4.5
KB
-rw-r--r--
2025-05-13 16:37
nc_tparm.h
4.67
KB
-rw-r--r--
2023-09-27 03:05
ncurses.h
96.82
KB
-rw-r--r--
2023-09-27 03:05
ncurses_dll.h
3.95
KB
-rw-r--r--
2023-09-27 03:05
ndbm.h
2.39
KB
-rw-r--r--
2022-01-02 08:34
netdb.h
27.79
KB
-rw-r--r--
2025-05-13 16:37
nl_types.h
1.71
KB
-rw-r--r--
2025-05-13 16:37
nss.h
14.07
KB
-rw-r--r--
2025-05-13 16:37
obstack.h
20.81
KB
-rw-r--r--
2025-05-13 16:37
panel.h
4.41
KB
-rw-r--r--
2023-09-27 03:05
paths.h
2.91
KB
-rw-r--r--
2025-05-13 16:37
pcre.h
30.97
KB
-rw-r--r--
2024-10-02 21:53
pcre2.h
46.15
KB
-rw-r--r--
2024-10-02 21:57
pcre2posix.h
6.52
KB
-rw-r--r--
2021-08-20 16:51
pcre_scanner.h
6.45
KB
-rw-r--r--
2014-01-31 14:32
pcre_stringpiece.h
6.16
KB
-rw-r--r--
2024-10-02 21:53
pcrecpp.h
25.91
KB
-rw-r--r--
2014-01-31 14:32
pcrecpparg.h
6.62
KB
-rw-r--r--
2024-10-02 21:53
pcreposix.h
5.74
KB
-rw-r--r--
2024-10-02 21:53
png.h
139.51
KB
-rw-r--r--
2019-04-14 18:10
pngconf.h
22.31
KB
-rw-r--r--
2019-04-14 18:10
pnglibconf.h
7.43
KB
-rw-r--r--
2022-02-10 02:35
poll.h
22
B
-rw-r--r--
2025-05-13 16:37
powercap.h
1.62
KB
-rw-r--r--
2025-07-09 09:27
pr29.h
2.19
KB
-rw-r--r--
2021-07-22 13:31
printf.h
6.71
KB
-rw-r--r--
2025-05-13 16:37
proc_service.h
3.4
KB
-rw-r--r--
2025-05-13 16:37
profile.h
11.87
KB
-rw-r--r--
2025-06-24 12:43
pthread.h
47.39
KB
-rw-r--r--
2025-05-13 16:37
pty.h
1.53
KB
-rw-r--r--
2025-05-13 16:38
punycode.h
9.3
KB
-rw-r--r--
2021-07-22 13:31
pwd.h
6.17
KB
-rw-r--r--
2025-05-13 16:37
re_comp.h
963
B
-rw-r--r--
2025-05-13 16:37
regex.h
25.3
KB
-rw-r--r--
2025-05-13 16:37
regexp.h
1.41
KB
-rw-r--r--
2025-05-13 16:37
resolv.h
12.1
KB
-rw-r--r--
2025-05-13 16:37
sched.h
4.92
KB
-rw-r--r--
2025-05-13 16:37
search.h
5.32
KB
-rw-r--r--
2025-05-13 16:37
semaphore.h
3.38
KB
-rw-r--r--
2025-05-13 16:37
setjmp.h
3.12
KB
-rw-r--r--
2025-05-13 16:37
sgtty.h
1.31
KB
-rw-r--r--
2025-05-13 16:37
shadow.h
5.34
KB
-rw-r--r--
2025-05-13 16:37
signal.h
12.73
KB
-rw-r--r--
2025-05-13 16:37
spawn.h
7.84
KB
-rw-r--r--
2025-05-13 16:37
stab.h
264
B
-rw-r--r--
2025-05-13 16:37
stdc-predef.h
2.24
KB
-rw-r--r--
2025-05-13 16:37
stdint.h
8.28
KB
-rw-r--r--
2025-05-13 16:37
stdio.h
30.67
KB
-rw-r--r--
2025-05-13 16:37
stdio_ext.h
2.73
KB
-rw-r--r--
2025-05-13 16:37
stdlib.h
35.46
KB
-rw-r--r--
2025-05-13 16:37
string.h
18.33
KB
-rw-r--r--
2025-05-13 16:37
stringprep.h
9.53
KB
-rw-r--r--
2021-07-22 13:44
strings.h
4.64
KB
-rw-r--r--
2025-05-13 16:37
syscall.h
25
B
-rw-r--r--
2025-05-13 16:37
sysexits.h
5.11
KB
-rw-r--r--
2025-05-13 16:37
syslog.h
24
B
-rw-r--r--
2025-05-13 16:37
tar.h
3.7
KB
-rw-r--r--
2025-05-13 16:37
term.h
40.95
KB
-rw-r--r--
2023-09-27 03:05
term_entry.h
8.9
KB
-rw-r--r--
2023-09-27 03:05
termcap.h
3.39
KB
-rw-r--r--
2023-09-27 03:05
termio.h
214
B
-rw-r--r--
2025-05-13 16:37
termios.h
3.51
KB
-rw-r--r--
2025-05-13 16:37
tgmath.h
39.24
KB
-rw-r--r--
2025-05-13 16:37
thread_db.h
15.65
KB
-rw-r--r--
2025-05-13 16:37
threads.h
7.51
KB
-rw-r--r--
2025-05-13 16:37
tic.h
14.48
KB
-rw-r--r--
2023-09-27 03:05
tiff.h
46.33
KB
-rw-r--r--
2022-04-22 16:51
tiffconf-64.h
3.19
KB
-rw-r--r--
2024-10-01 17:43
tiffconf.h
250
B
-rw-r--r--
2024-10-01 17:43
tiffio.h
24.13
KB
-rw-r--r--
2022-05-20 15:32
tiffio.hxx
1.62
KB
-rw-r--r--
2022-02-19 15:33
tiffvers.h
410
B
-rw-r--r--
2022-05-20 16:12
time.h
14.49
KB
-rw-r--r--
2025-05-13 16:37
tld.h
4.85
KB
-rw-r--r--
2021-07-22 13:31
ttyent.h
2.44
KB
-rw-r--r--
2025-05-13 16:37
uchar.h
1.96
KB
-rw-r--r--
2025-05-13 16:37
ucontext.h
1.99
KB
-rw-r--r--
2025-05-13 16:37
ulimit.h
1.55
KB
-rw-r--r--
2025-05-13 16:37
unctrl.h
3.1
KB
-rw-r--r--
2023-09-27 03:05
unistd.h
43.45
KB
-rw-r--r--
2025-05-13 16:37
utime.h
1.86
KB
-rw-r--r--
2025-05-13 16:37
utmp.h
3.15
KB
-rw-r--r--
2025-05-13 16:38
utmpx.h
4
KB
-rw-r--r--
2025-05-13 16:38
values.h
1.91
KB
-rw-r--r--
2025-05-13 16:37
verto-module.h
6.48
KB
-rw-r--r--
2022-02-10 04:33
verto.h
18.98
KB
-rw-r--r--
2022-02-10 04:33
wait.h
22
B
-rw-r--r--
2025-05-13 16:37
wchar.h
31.39
KB
-rw-r--r--
2025-05-13 16:37
wctype.h
5.42
KB
-rw-r--r--
2025-05-13 16:37
wordexp.h
2.44
KB
-rw-r--r--
2025-05-13 16:37
zconf.h
15.88
KB
-rw-r--r--
2023-09-26 09:22
zlib.h
94
KB
-rw-r--r--
2023-09-26 09:22
Save
Rename
#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