SILENT KILLERPanel

Current Path: > > usr > include > >


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //usr/include//

NameTypeSizeLast ModifiedActions
GL Directory - -
X11 Directory - -
apache2 Directory - -
arpa Directory - -
asm Directory - -
asm-generic Directory - -
bind9 Directory - -
bits Directory - -
bsock Directory - -
c++ Directory - -
criu Directory - -
curl Directory - -
drm Directory - -
e2p Directory - -
et Directory - -
event2 Directory - -
ext2fs Directory - -
finclude Directory - -
fontconfig Directory - -
freetype2 Directory - -
fstrm Directory - -
gdb Directory - -
gdbm Directory - -
gnu Directory - -
google Directory - -
gssapi Directory - -
gssrpc Directory - -
jemalloc Directory - -
json-c Directory - -
kadm5 Directory - -
krb5 Directory - -
libdb Directory - -
libexslt Directory - -
libltdl Directory - -
libpng16 Directory - -
libxml2 Directory - -
libxslt Directory - -
linux Directory - -
lua-5.1 Directory - -
lzma Directory - -
misc Directory - -
mtd Directory - -
mysql Directory - -
ncurses Directory - -
ncursesw Directory - -
net Directory - -
netash Directory - -
netatalk Directory - -
netax25 Directory - -
neteconet Directory - -
netinet Directory - -
netipx Directory - -
netiucv Directory - -
netpacket Directory - -
netrom Directory - -
netrose Directory - -
nfs Directory - -
openssl Directory - -
perf Directory - -
protobuf-c Directory - -
protocols Directory - -
python2.7 Directory - -
python3.6m Directory - -
python3.8 Directory - -
rdma Directory - -
rpc Directory - -
sasl Directory - -
scsi Directory - -
security Directory - -
selinux Directory - -
sepol Directory - -
sound Directory - -
sys Directory - -
uuid Directory - -
video Directory - -
webp Directory - -
xcb Directory - -
xen Directory - -
FlexLexer.h File 6893 bytes October 12 2019 12:33:17.
a.out.h File 4350 bytes June 09 2025 20:25:26.
aio.h File 7456 bytes June 09 2025 20:25:38.
aliases.h File 2031 bytes June 09 2025 20:25:38.
alloca.h File 1203 bytes June 09 2025 20:25:24.
ar.h File 1730 bytes June 09 2025 20:25:26.
argp.h File 25414 bytes June 09 2025 20:25:38.
argz.h File 6050 bytes June 09 2025 20:25:25.
assert.h File 4561 bytes June 09 2025 20:25:22.
autosprintf.h File 2383 bytes November 18 2019 17:16:51.
byteswap.h File 1404 bytes June 09 2025 20:25:25.
bzlib.h File 6245 bytes September 10 2010 23:08:42.
com_err.h File 2118 bytes March 21 2020 04:24:04.
complex.h File 7163 bytes June 09 2025 20:25:23.
cpio.h File 2267 bytes June 09 2025 20:25:25.
cpuidle.h File 844 bytes July 04 2025 12:30:10.
crypt.h File 9118 bytes October 09 2021 04:04:04.
ctype.h File 10963 bytes June 09 2025 20:25:22.
curses.h File 99625 bytes October 14 2023 18:54:42.
cursesapp.h File 6775 bytes October 14 2023 18:54:42.
cursesf.h File 27849 bytes October 14 2023 18:54:42.
cursesm.h File 19677 bytes October 14 2023 18:54:42.
cursesp.h File 8601 bytes October 14 2023 18:54:42.
cursesw.h File 49719 bytes October 14 2023 18:54:42.
cursslk.h File 7304 bytes October 14 2023 18:54:42.
db.h File 123105 bytes September 21 2021 16:29:14.
db_185.h File 5983 bytes September 21 2021 16:29:14.
dbm.h File 1414 bytes October 08 2022 13:22:08.
dirent.h File 12484 bytes June 09 2025 20:25:25.
dlfcn.h File 7238 bytes June 09 2025 20:25:24.
elf.h File 174828 bytes June 09 2025 20:25:40.
endian.h File 3189 bytes June 09 2025 20:25:25.
entities.h File 4930 bytes August 30 2017 11:05:54.
envz.h File 2866 bytes June 09 2025 20:25:25.
err.h File 2209 bytes June 09 2025 20:25:26.
errno.h File 1678 bytes June 09 2025 20:25:24.
error.h File 2039 bytes June 09 2025 20:25:26.
eti.h File 2891 bytes October 14 2023 18:54:42.
etip.h File 9702 bytes October 14 2023 18:54:42.
evdns.h File 2019 bytes October 12 2019 00:29:31.
event.h File 2744 bytes October 12 2019 00:29:31.
evhttp.h File 2035 bytes October 12 2019 00:29:31.
evrpc.h File 2015 bytes October 12 2019 00:29:31.
evutil.h File 1782 bytes October 12 2019 00:29:31.
execinfo.h File 1522 bytes June 09 2025 20:25:38.
expat.h File 43680 bytes April 15 2025 19:58:56.
expat_config.h File 3517 bytes April 15 2025 19:58:56.
expat_external.h File 5532 bytes April 15 2025 19:58:56.
fcntl.h File 10958 bytes June 09 2025 20:25:26.
features.h File 16062 bytes June 09 2025 20:25:19.
fenv.h File 5857 bytes June 09 2025 20:25:23.
fmtmsg.h File 3239 bytes June 09 2025 20:25:24.
fnmatch.h File 2295 bytes June 09 2025 20:25:25.
form.h File 18601 bytes October 14 2023 18:54:42.
fpu_control.h File 3583 bytes June 09 2025 20:25:23.
fstab.h File 3111 bytes June 09 2025 20:25:26.
fstrm.h File 13017 bytes March 11 2019 20:58:34.
fts.h File 8372 bytes June 09 2025 20:25:26.
ftw.h File 5251 bytes June 09 2025 20:25:26.
gconv.h File 4410 bytes June 09 2025 20:25:19.
gcrypt.h File 70361 bytes June 28 2022 11:54:07.
gd.h File 57777 bytes August 30 2017 11:05:54.
gd_color_map.h File 478 bytes August 30 2017 11:05:54.
gd_errors.h File 1503 bytes August 30 2017 11:05:54.
gd_io.h File 3125 bytes August 30 2017 11:05:54.
gdbm.h File 10345 bytes October 08 2022 13:22:07.
gdcache.h File 2898 bytes August 30 2017 11:05:54.
gdfontg.h File 553 bytes August 30 2017 11:05:54.
gdfontl.h File 551 bytes August 30 2017 11:05:54.
gdfontmb.h File 519 bytes August 30 2017 11:05:54.
gdfonts.h File 515 bytes August 30 2017 11:05:54.
gdfontt.h File 546 bytes August 30 2017 11:05:54.
gdfx.h File 497 bytes August 30 2017 11:05:54.
gdpp.h File 52162 bytes August 30 2017 11:05:54.
getopt.h File 1468 bytes June 09 2025 20:25:25.
gettext-po.h File 15534 bytes November 18 2019 17:17:03.
glob.h File 6614 bytes June 09 2025 20:25:25.
gnu-versions.h File 2342 bytes June 09 2025 20:25:19.
gnumake.h File 2912 bytes April 18 2022 16:38:33.
gpg-error.h File 67879 bytes October 12 2019 12:20:46.
gpgrt.h File 67879 bytes October 12 2019 12:20:46.
grp.h File 6686 bytes June 09 2025 20:25:25.
gshadow.h File 4528 bytes June 09 2025 20:25:37.
gssapi.h File 181 bytes June 03 2025 02:06:27.
iconv.h File 1857 bytes June 09 2025 20:25:19.
idn-free.h File 2472 bytes October 13 2019 16:55:34.
idn-int.h File 20 bytes October 13 2019 16:55:34.
idna.h File 3564 bytes October 13 2019 16:55:34.
ieee754.h File 4910 bytes June 09 2025 20:25:23.
ifaddrs.h File 2840 bytes June 09 2025 20:25:38.
inttypes.h File 11892 bytes June 09 2025 20:25:24.
jconfig-64.h File 2225 bytes May 14 2025 12:43:01.
jconfig.h File 246 bytes May 14 2025 12:43:01.
jerror.h File 15088 bytes May 14 2025 12:43:01.
jmorecfg.h File 15049 bytes May 14 2025 12:43:01.
jpegint.h File 15586 bytes May 14 2025 12:43:01.
jpeglib.h File 49875 bytes May 14 2025 12:43:01.
kdb.h File 69285 bytes June 03 2025 02:06:27.
keyutils.h File 7698 bytes October 08 2021 13:50:54.
krad.h File 8933 bytes June 03 2025 02:06:27.
krb5.h File 402 bytes June 03 2025 02:06:27.
langinfo.h File 17848 bytes June 09 2025 20:25:19.
lastlog.h File 126 bytes June 09 2025 20:25:40.
lber.h File 15311 bytes March 11 2025 09:44:02.
lber_types.h File 1468 bytes March 11 2025 09:44:02.
ldap.h File 65096 bytes March 11 2025 09:44:02.
ldap_cdefs.h File 9466 bytes March 11 2025 09:44:02.
ldap_features.h File 1814 bytes March 11 2025 09:44:03.
ldap_schema.h File 9450 bytes March 11 2025 09:44:02.
ldap_utf8.h File 3468 bytes March 11 2025 09:44:02.
ldif.h File 4692 bytes March 11 2025 09:44:03.
libaio.h File 8937 bytes November 13 2019 13:59:49.
libgen.h File 1385 bytes June 09 2025 20:25:26.
libintl.h File 4579 bytes June 09 2025 20:25:22.
limits.h File 5412 bytes June 09 2025 20:25:19.
link.h File 7218 bytes June 09 2025 20:25:40.
locale.h File 7674 bytes June 09 2025 20:25:19.
ltdl.h File 5709 bytes October 11 2019 14:55:29.
lzma.h File 9817 bytes April 29 2018 15:10:38.
magic.h File 5588 bytes April 06 2024 14:44:54.
malloc.h File 6102 bytes June 09 2025 20:25:25.
math.h File 53318 bytes June 09 2025 20:25:23.
mcheck.h File 2434 bytes June 09 2025 20:25:25.
memory.h File 955 bytes June 09 2025 20:25:25.
menu.h File 12197 bytes October 14 2023 18:54:42.
mntent.h File 3358 bytes June 09 2025 20:25:26.
monetary.h File 1803 bytes June 09 2025 20:25:24.
mqueue.h File 3759 bytes June 09 2025 20:25:38.
nc_tparm.h File 4197 bytes October 14 2023 18:54:42.
ncurses.h File 99625 bytes October 14 2023 18:54:42.
ncurses_dll.h File 4277 bytes October 14 2023 18:54:42.
ndbm.h File 2454 bytes October 08 2022 13:22:08.
netdb.h File 28099 bytes June 09 2025 20:25:39.
nl_types.h File 1752 bytes June 09 2025 20:25:23.
nss.h File 1878 bytes June 09 2025 20:25:39.
obstack.h File 21306 bytes June 09 2025 20:25:25.
panel.h File 4123 bytes October 14 2023 18:54:42.
paths.h File 2977 bytes June 09 2025 20:25:26.
pcre.h File 31718 bytes October 08 2021 19:17:42.
pcre2.h File 44802 bytes August 02 2022 16:07:28.
pcre2posix.h File 5804 bytes August 02 2022 16:07:28.
pcre_scanner.h File 6600 bytes October 08 2021 19:17:42.
pcre_stringpiece.h File 6312 bytes October 08 2021 19:17:42.
pcrecpp.h File 26529 bytes October 08 2021 19:17:42.
pcrecpparg.h File 6783 bytes October 08 2021 19:17:42.
pcreposix.h File 5452 bytes October 08 2021 19:17:42.
png.h File 144149 bytes October 12 2019 00:44:13.
pngconf.h File 22845 bytes October 12 2019 00:44:13.
pnglibconf.h File 7567 bytes October 12 2019 00:44:13.
poll.h File 22 bytes June 09 2025 20:25:26.
pr29.h File 2123 bytes October 13 2019 16:55:34.
printf.h File 6800 bytes June 09 2025 20:25:24.
proc_service.h File 3476 bytes June 09 2025 20:25:38.
profile.h File 12154 bytes June 03 2025 02:06:27.
pthread.h File 41269 bytes June 09 2025 20:25:25.
pty.h File 1569 bytes June 09 2025 20:25:40.
punycode.h File 9384 bytes October 13 2019 16:55:34.
pwd.h File 6158 bytes June 09 2025 20:25:25.
re_comp.h File 962 bytes June 09 2025 20:25:25.
regex.h File 24715 bytes June 09 2025 20:25:25.
regexp.h File 1447 bytes June 09 2025 20:25:26.
resolv.h File 12077 bytes June 09 2025 20:25:39.
sched.h File 4732 bytes June 09 2025 20:25:25.
search.h File 5223 bytes June 09 2025 20:25:26.
semaphore.h File 2399 bytes June 09 2025 20:25:25.
setjmp.h File 3669 bytes June 09 2025 20:25:24.
sgtty.h File 1343 bytes June 09 2025 20:25:26.
shadow.h File 5471 bytes June 09 2025 20:25:37.
signal.h File 12243 bytes June 09 2025 20:25:24.
slapi-plugin.h File 38351 bytes March 11 2025 09:44:03.
spawn.h File 6690 bytes June 09 2025 20:25:25.
stab.h File 264 bytes June 09 2025 20:25:26.
stdc-predef.h File 2289 bytes June 09 2025 20:25:19.
stdint.h File 8469 bytes June 09 2025 20:25:24.
stdio.h File 30168 bytes June 09 2025 20:25:24.
stdio_ext.h File 2799 bytes June 09 2025 20:25:24.
stdlib.h File 35653 bytes June 09 2025 20:25:24.
string.h File 17587 bytes June 09 2025 20:25:25.
stringprep.h File 8227 bytes October 13 2019 16:55:34.
strings.h File 4752 bytes June 09 2025 20:25:25.
syscall.h File 25 bytes June 09 2025 20:25:26.
sysexits.h File 5232 bytes June 09 2025 20:25:26.
syslog.h File 24 bytes June 09 2025 20:25:26.
tar.h File 3785 bytes June 09 2025 20:25:25.
term.h File 41190 bytes October 14 2023 18:54:42.
term_entry.h File 8760 bytes October 14 2023 18:54:42.
termcap.h File 3473 bytes October 14 2023 18:54:42.
termio.h File 214 bytes June 09 2025 20:25:26.
termios.h File 3598 bytes June 09 2025 20:25:26.
tgmath.h File 31489 bytes June 09 2025 20:25:23.
thread_db.h File 16023 bytes June 09 2025 20:25:38.
threads.h File 6655 bytes June 09 2025 20:25:25.
tic.h File 13638 bytes October 14 2023 18:54:42.
tiff.h File 35983 bytes May 07 2025 13:34:34.
tiffconf-64.h File 3429 bytes May 07 2025 13:34:34.
tiffconf.h File 250 bytes May 07 2025 13:34:35.
tiffio.h File 23227 bytes May 07 2025 13:34:34.
tiffio.hxx File 1702 bytes May 07 2025 13:34:34.
tiffvers.h File 410 bytes May 07 2025 13:34:34.
time.h File 10360 bytes June 09 2025 20:25:25.
tld.h File 4650 bytes October 13 2019 16:55:34.
ttyent.h File 2494 bytes June 09 2025 20:25:26.
uchar.h File 2001 bytes June 09 2025 20:25:25.
ucontext.h File 2036 bytes June 09 2025 20:25:24.
ulimit.h File 1583 bytes June 09 2025 20:25:26.
unctrl.h File 3099 bytes October 14 2023 18:54:42.
unistd.h File 42738 bytes June 09 2025 20:25:25.
utime.h File 1501 bytes June 09 2025 20:25:26.
utmp.h File 3222 bytes June 09 2025 20:25:40.
utmpx.h File 4099 bytes June 09 2025 20:25:40.
values.h File 1955 bytes June 09 2025 20:25:19.
verto-module.h File 6640 bytes October 08 2022 07:49:42.
verto.h File 19437 bytes October 08 2022 07:49:42.
wait.h File 22 bytes June 09 2025 20:25:25.
wchar.h File 31111 bytes June 09 2025 20:25:25.
wctype.h File 5548 bytes June 09 2025 20:25:26.
wordexp.h File 2501 bytes June 09 2025 20:25:25.
zconf.h File 16262 bytes October 11 2023 22:02:25.
zlib.h File 96261 bytes October 11 2023 22:02:25.

Reading File: //usr/include///krad.h

/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
 * Copyright 2013 Red Hat, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *    1. Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *
 *    2. Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in
 *       the documentation and/or other materials provided with the
 *       distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/*
 * This API is not considered as stable as the main krb5 API.
 *
 * - We may make arbitrary incompatible changes between feature releases
 *   (e.g. from 1.12 to 1.13).
 * - We will make some effort to avoid making incompatible changes for
 *   bugfix releases, but will make them if necessary.
 */

#ifndef KRAD_H_
#define KRAD_H_

#include <krb5.h>
#include <verto.h>
#include <stddef.h>
#include <stdio.h>

#define KRAD_PACKET_SIZE_MAX 4096

#define KRAD_SERVICE_TYPE_LOGIN 1
#define KRAD_SERVICE_TYPE_FRAMED 2
#define KRAD_SERVICE_TYPE_CALLBACK_LOGIN 3
#define KRAD_SERVICE_TYPE_CALLBACK_FRAMED 4
#define KRAD_SERVICE_TYPE_OUTBOUND 5
#define KRAD_SERVICE_TYPE_ADMINISTRATIVE 6
#define KRAD_SERVICE_TYPE_NAS_PROMPT 7
#define KRAD_SERVICE_TYPE_AUTHENTICATE_ONLY 8
#define KRAD_SERVICE_TYPE_CALLBACK_NAS_PROMPT 9
#define KRAD_SERVICE_TYPE_CALL_CHECK 10
#define KRAD_SERVICE_TYPE_CALLBACK_ADMINISTRATIVE 11

typedef struct krad_attrset_st krad_attrset;
typedef struct krad_packet_st krad_packet;
typedef struct krad_client_st krad_client;
typedef unsigned char krad_code;
typedef unsigned char krad_attr;

/* Called when a response is received or the request times out. */
typedef void
(*krad_cb)(krb5_error_code retval, const krad_packet *request,
           const krad_packet *response, void *data);

/*
 * Called to iterate over a set of requests.  Either the callback will be
 * called until it returns NULL, or it will be called with cancel = TRUE to
 * terminate in the middle of an iteration.
 */
typedef const krad_packet *
(*krad_packet_iter_cb)(void *data, krb5_boolean cancel);

/*
 * Code
 */

/* Convert a code name to its number. Only works for codes defined
 * by RFC 2875 or 2882. Returns 0 if the name was not found. */
krad_code
krad_code_name2num(const char *name);

/* Convert a code number to its name. Only works for attributes defined
 * by RFC 2865 or 2882. Returns NULL if the name was not found. */
const char *
krad_code_num2name(krad_code code);

/*
 * Attribute
 */

/* Convert an attribute name to its number. Only works for attributes defined
 * by RFC 2865. Returns 0 if the name was not found. */
krad_attr
krad_attr_name2num(const char *name);

/* Convert an attribute number to its name. Only works for attributes defined
 * by RFC 2865. Returns NULL if the name was not found. */
const char *
krad_attr_num2name(krad_attr type);

/*
 * Attribute set
 */

/* Create a new attribute set. */
krb5_error_code
krad_attrset_new(krb5_context ctx, krad_attrset **set);

/* Create a deep copy of an attribute set. */
krb5_error_code
krad_attrset_copy(const krad_attrset *set, krad_attrset **copy);

/* Free an attribute set. */
void
krad_attrset_free(krad_attrset *set);

/* Add an attribute to a set. */
krb5_error_code
krad_attrset_add(krad_attrset *set, krad_attr type, const krb5_data *data);

/* Add a four-octet unsigned number attribute to the given set. */
krb5_error_code
krad_attrset_add_number(krad_attrset *set, krad_attr type, krb5_ui_4 num);

/* Delete the specified attribute. */
void
krad_attrset_del(krad_attrset *set, krad_attr type, size_t indx);

/* Get the specified attribute. */
const krb5_data *
krad_attrset_get(const krad_attrset *set, krad_attr type, size_t indx);

/*
 * Packet
 */

/* Determine the bytes needed from the socket to get the whole packet.  Don't
 * cache the return value as it can change! Returns -1 on EBADMSG. */
ssize_t
krad_packet_bytes_needed(const krb5_data *buffer);

/* Free a packet. */
void
krad_packet_free(krad_packet *pkt);

/*
 * Create a new request packet.
 *
 * This function takes the attributes specified in set and converts them into a
 * radius packet. The packet will have a randomized id. If cb is not NULL, it
 * will be called passing data as the argument to iterate over a set of
 * outstanding requests. In this case, the id will be both random and unique
 * across the set of requests.
 */
krb5_error_code
krad_packet_new_request(krb5_context ctx, const char *secret, krad_code code,
                        const krad_attrset *set, krad_packet_iter_cb cb,
                        void *data, krad_packet **request);

/*
 * Create a new response packet.
 *
 * This function is similar to krad_packet_new_requst() except that it crafts a
 * packet in response to a request packet. This new packet will borrow values
 * from the request such as the id and the authenticator.
 */
krb5_error_code
krad_packet_new_response(krb5_context ctx, const char *secret, krad_code code,
                         const krad_attrset *set, const krad_packet *request,
                         krad_packet **response);

/*
 * Decode a request radius packet from krb5_data.
 *
 * The resulting decoded packet will be a request packet stored in *reqpkt.
 *
 * If cb is NULL, *duppkt will always be NULL.
 *
 * If cb is not NULL, it will be called (with the data argument) to iterate
 * over a set of requests currently being processed. In this case, if the
 * packet is a duplicate of an already received request, the original request
 * will be set in *duppkt.
 */
krb5_error_code
krad_packet_decode_request(krb5_context ctx, const char *secret,
                           const krb5_data *buffer, krad_packet_iter_cb cb,
                           void *data, const krad_packet **duppkt,
                           krad_packet **reqpkt);

/*
 * Decode a response radius packet from krb5_data.
 *
 * The resulting decoded packet will be a response packet stored in *rsppkt.
 *
 * If cb is NULL, *reqpkt will always be NULL.
 *
 * If cb is not NULL, it will be called (with the data argument) to iterate
 * over a set of requests awaiting responses. In this case, if the response
 * packet matches one of these requests, the original request will be set in
 * *reqpkt.
 */
krb5_error_code
krad_packet_decode_response(krb5_context ctx, const char *secret,
                            const krb5_data *buffer, krad_packet_iter_cb cb,
                            void *data, const krad_packet **reqpkt,
                            krad_packet **rsppkt);

/* Encode packet. */
const krb5_data *
krad_packet_encode(const krad_packet *pkt);

/* Get the code for the given packet. */
krad_code
krad_packet_get_code(const krad_packet *pkt);

/* Get the specified attribute. */
const krb5_data *
krad_packet_get_attr(const krad_packet *pkt, krad_attr type, size_t indx);

/*
 * Client
 */

/* Create a new client. */
krb5_error_code
krad_client_new(krb5_context kctx, verto_ctx *vctx, krad_client **client);

/* Free the client. */
void
krad_client_free(krad_client *client);

/*
 * Send a request to a radius server.
 *
 * The remote host may be specified by one of the following formats:
 *  - /path/to/unix.socket
 *  - IPv4
 *  - IPv4:port
 *  - IPv4:service
 *  - [IPv6]
 *  - [IPv6]:port
 *  - [IPv6]:service
 *  - hostname
 *  - hostname:port
 *  - hostname:service
 *
 * The timeout parameter (milliseconds) is the total timeout across all remote
 * hosts (when DNS returns multiple entries) and all retries.  For stream
 * sockets, the retries parameter is ignored and no retries are performed.
 *
 * The cb function will be called with the data argument when either a response
 * is received or the request times out on all possible remote hosts.
 */
krb5_error_code
krad_client_send(krad_client *rc, krad_code code, const krad_attrset *attrs,
                 const char *remote, const char *secret, int timeout,
                 size_t retries, krad_cb cb, void *data);

#endif /* KRAD_H_ */

SILENT KILLER Tool