radius
krad_client_free(self->radius);
retval = krad_client_send(req->state->radius, KRAD_CODE_ACCESS_REQUEST,
if (state->radius == NULL) {
retval = krad_client_new(state->ctx, ctx, &state->radius);
krad_client *radius;
int radius;
radius = sc->sc_radius;
radius = (radius * (8000-sc->sc_tick)) / 8000;
sc->sc_curr_x_state = (sc->sc_tick * radius) / 2000;
sc->sc_curr_x_state = radius;
sc->sc_curr_y_state = -(((sc->sc_tick - 2000) * radius) / 2000);
sc->sc_curr_x_state = radius - (((sc->sc_tick - 4000) * radius) / 2000);
sc->sc_curr_y_state = -radius;
sc->sc_curr_y_state = -radius + (((sc->sc_tick - 6000) * radius) / 2000);
if (bundle->radius.valid && bundle->radius.ip.s_addr != INADDR_NONE &&
bundle->radius.ip.s_addr != RADIUS_INADDR_POOL) {
if (!ipcp_UseHisIPaddr(bundle, bundle->radius.ip))
ipcp_Setup(&bundle->ncp.ipcp, bundle->radius.mask.s_addr);
if (!bundle->radius.valid || bundle->radius.ip.s_addr == INADDR_NONE) {
if (bundle->radius.valid)
radius_Show(&arg->bundle->radius, arg->prompt);
bundle->phys_type.open && bundle->radius.sessiontime) {
secs = bundle->radius.sessiontime;
if (bundle->radius.valid && bundle->radius.mtu &&
bundle->radius.mtu < bundle->iface->mtu) {
bundle->radius.mtu);
bundle->iface->mtu = bundle->radius.mtu;
if (bundle->radius.sessiontime)
if (bundle->radius.sessiontime)
if (bundle->radius.sessiontime)
if (bundle->radius.sessiontime)
if (bundle->radius.sessiontime)
result += descriptor_UpdateSet(&bundle->radius.desc, r, w, e, n);
if (descriptor_IsSet(&bundle->radius.desc, fdset))
if (descriptor_IsSet(&bundle->radius.desc, fdset))
descriptor_Read(&bundle->radius.desc, bundle, fdset);
radius_Init(&bundle.radius);
radius_Destroy(&bundle->radius);
if (bundle->radius.sessiontime)
struct radius radius; /* Info retrieved from radius server */
if (*authp->physical->dl->bundle->radius.cfg.file) {
if (*bundle->radius.cfg.file && bundle->radius.msrepstr)
msg = bundle->radius.msrepstr;
if (*bundle->radius.cfg.file && bundle->radius.repstr)
msg = bundle->radius.repstr;
if (*bundle->radius.cfg.file && bundle->radius.errstr)
msg = bundle->radius.errstr;
if (*bundle->radius.cfg.file) {
if (!radius_Authenticate(&bundle->radius, &chap->auth,
arg->bundle->radius.alive.interval = atoi(argp);
if (arg->bundle->radius.alive.interval && !*arg->bundle->radius.cfg.file) {
if (arg->bundle->radius.alive.interval)
radius_StopTimer(&arg->bundle->radius);
*arg->bundle->radius.cfg.file = '\0';
strncpy(arg->bundle->radius.cfg.file, argp,
sizeof arg->bundle->radius.cfg.file - 1);
arg->bundle->radius.cfg.file
[sizeof arg->bundle->radius.cfg.file - 1] = '\0';
arg->bundle->radius.port_id_type = RPI_DEFAULT;
arg->bundle->radius.port_id_type = RPI_PID;
arg->bundle->radius.port_id_type = RPI_IFNUM;
arg->bundle->radius.port_id_type = RPI_TUNNUM;
if (arg->bundle->radius.port_id_type && !*arg->bundle->radius.cfg.file) {
bundle->radius.ipv6prefix);
|| (ipcp->fsm.bundle->radius.valid && ipcp->fsm.bundle->radius.vj)
if (bundle->radius.valid)
route_Change(bundle, bundle->radius.routes, &myncpaddr, &hisncpaddr);
radius_Flush(&fp->bundle->radius);
radius_Account(&fp->bundle->radius, &fp->bundle->radacct,
if (*fp->bundle->radius.cfg.file && fp->bundle->radius.filterid)
system_Select(fp->bundle, fp->bundle->radius.filterid, LINKDOWNFILE,
radius_StopTimer(&fp->bundle->radius);
radius_Account(&fp->bundle->radius, &fp->bundle->radacct, fp->bundle->links,
if (*fp->bundle->radius.cfg.file && fp->bundle->radius.filterid)
system_Select(fp->bundle, fp->bundle->radius.filterid, LINKUPFILE,
if (bundle->radius.valid)
route_Change(bundle, bundle->radius.ipv6routes, &ipv6cp->myaddr,
radius_Account(&fp->bundle->radius, &fp->bundle->radacct6,
if (*fp->bundle->radius.cfg.file && fp->bundle->radius.filterid)
system_Select(fp->bundle, fp->bundle->radius.filterid, LINKUPFILE,
radius_Flush(&fp->bundle->radius);
radius_Account(&fp->bundle->radius, &fp->bundle->radacct6,
if (*fp->bundle->radius.cfg.file && fp->bundle->radius.filterid)
system_Select(fp->bundle, fp->bundle->radius.filterid, LINKDOWNFILE,
struct radius *r = &fp->bundle->radius;
if (*fp->bundle->radius.cfg.file && fp->bundle->radius.mppe.policy)
return fp->bundle->radius.mppe.policy == MPPE_POLICY_REQUIRED ? 1 : 0;
if (*bundle->radius.cfg.file && bundle->radius.mppe.types) {
if (bundle->radius.mppe.types & MPPE_TYPE_40BIT)
if (bundle->radius.mppe.types & MPPE_TYPE_128BIT)
if (*bundle->radius.cfg.file && bundle->radius.mppe.recvkey) {
if (mip->keylen > bundle->radius.mppe.recvkeylen)
mip->keylen = bundle->radius.mppe.recvkeylen;
memcpy(mip->mastkey, bundle->radius.mppe.recvkey, mip->keylen);
if (*bundle->radius.cfg.file && bundle->radius.mppe.sendkey) {
if (mop->keylen > bundle->radius.mppe.sendkeylen)
mop->keylen = bundle->radius.mppe.sendkeylen;
memcpy(mop->mastkey, bundle->radius.mppe.sendkey, mop->keylen);
if (*bundle->radius.cfg.file && bundle->radius.repstr)
SendPapCode(authp, PAP_ACK, bundle->radius.repstr);
if (*bundle->radius.cfg.file) {
if (!radius_Authenticate(&bundle->radius, authp, authp->in.name,
radius_Account(struct radius *r, struct radacct *ac, struct datalink *dl,
radius_Show(struct radius *r, struct prompt *p)
timer_Stop(&bundle->radius.alive.timer);
bundle->radius.alive.timer.load = bundle->radius.alive.interval * SECTICKS;
if (bundle->radius.alive.timer.load) {
radius_Account(&bundle->radius, &bundle->radacct,
timer_Start(&bundle->radius.alive.timer);
if (*bundle->radius.cfg.file && bundle->radius.alive.interval) {
bundle->radius.alive.timer.func = radius_alive;
bundle->radius.alive.timer.name = "radius alive";
bundle->radius.alive.timer.load = bundle->radius.alive.interval * SECTICKS;
bundle->radius.alive.timer.arg = bundle;
radius_StopTimer(struct radius *r)
demangle(struct radius *r, const void *mangled, size_t mlen,
radius_Process(struct radius *r, int got)
radius_Continue(struct radius *r, int sel)
radius_Continue((struct radius *)v, 0);
radius_Flush(struct radius *r)
struct radius *rad = descriptor2radius(d);
struct radius *r = descriptor2radius(d);
radius_Init(struct radius *r)
radius_Destroy(struct radius *r)
radius_put_physical_details(struct radius *rad, struct physical *p)
radius_Authenticate(struct radius *r, struct authinfo *authp, const char *name,
((d)->type == RADIUS_DESCRIPTOR ? (struct radius *)(d) : NULL)
extern void radius_Flush(struct radius *);
extern void radius_Init(struct radius *);
extern void radius_Destroy(struct radius *);
extern void radius_Show(struct radius *, struct prompt *);
extern void radius_StopTimer(struct radius *);
extern int radius_Authenticate(struct radius *, struct authinfo *,
extern void radius_Account(struct radius *, struct radacct *,
struct radius *rad_parent; /* "Parent" struct radius stored in bundle */