isakmp_cfg_config
isakmp_cfg_config.splitnet_type = UNITY_LOCAL_LAN;
isakmp_cfg_config.splitnet_type = UNITY_SPLIT_INCLUDE;
strncpy(&isakmp_cfg_config.default_domain[0],
isakmp_cfg_config.default_domain[MAXPATHLEN] = '\0';
isakmp_cfg_config.authsource = ISAKMP_CFG_AUTH_SYSTEM;
isakmp_cfg_config.authsource = ISAKMP_CFG_AUTH_RADIUS;
isakmp_cfg_config.authsource = ISAKMP_CFG_AUTH_PAM;
isakmp_cfg_config.authsource = ISAKMP_CFG_AUTH_LDAP;
isakmp_cfg_config.groupsource = ISAKMP_CFG_GROUP_SYSTEM;
isakmp_cfg_config.groupsource = ISAKMP_CFG_GROUP_LDAP;
isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_NONE;
isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_SYSTEM;
isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_RADIUS;
isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_PAM;
isakmp_cfg_config.pfs_group = $2;
isakmp_cfg_config.save_passwd = $2;
isakmp_cfg_config.auth_throttle = $2;
isakmp_cfg_config.confsource = ISAKMP_CFG_CONF_LOCAL;
isakmp_cfg_config.confsource = ISAKMP_CFG_CONF_RADIUS;
isakmp_cfg_config.confsource = ISAKMP_CFG_CONF_LDAP;
strncpy(&isakmp_cfg_config.motd[0], $2->v, MAXPATHLEN);
isakmp_cfg_config.motd[MAXPATHLEN] = '\0';
struct isakmp_cfg_config *icc = &isakmp_cfg_config;
struct isakmp_cfg_config *icc = &isakmp_cfg_config;
struct isakmp_cfg_config *icc = &isakmp_cfg_config;
struct isakmp_cfg_config *icc = &isakmp_cfg_config;
struct isakmp_cfg_config *icc = &isakmp_cfg_config;
&isakmp_cfg_config.network4) != 1)
&isakmp_cfg_config.netmask4) != 1)
struct isakmp_cfg_config isakmp_cfg_config;
size_t size = isakmp_cfg_config.pool_size;
if (isakmp_cfg_config.port_pool == NULL) {
if (isakmp_cfg_config.port_pool[i].used == 0)
isakmp_cfg_config.port_pool[i].used = 1;
if (isakmp_cfg_config.port_pool == NULL) {
if (isakmp_cfg_config.port_pool[index].used == 0) {
if (isakmp_cfg_config.authsource == ISAKMP_CFG_AUTH_PAM)
isakmp_cfg_config.port_pool[index].used = 0;
if (isakmp_cfg_config.port_pool[port].pam != NULL) {
pam_end(isakmp_cfg_config.port_pool[port].pam, PAM_SUCCESS);
isakmp_cfg_config.port_pool[port].pam = NULL;
if (isakmp_cfg_config.accounting == ISAKMP_CFG_ACCT_PAM)
if (isakmp_cfg_config.accounting == ISAKMP_CFG_ACCT_RADIUS)
if (isakmp_cfg_config.accounting == ISAKMP_CFG_ACCT_SYSTEM)
if (isakmp_cfg_config.port_pool == NULL) {
pam = isakmp_cfg_config.port_pool[port].pam;
isakmp_cfg_config.port_pool[port].pam = NULL;
if (size == isakmp_cfg_config.pool_size)
isakmp_cfg_config.pool_size, size);
if ((isakmp_cfg_config.port_pool != NULL) &&
(size < isakmp_cfg_config.pool_size)) {
for (i = isakmp_cfg_config.pool_size-1; i >= size; --i) {
if (isakmp_cfg_config.port_pool[i].used) {
isakmp_cfg_config.pool_size, size, i);
len = size * sizeof(*isakmp_cfg_config.port_pool);
new_pool = racoon_realloc(isakmp_cfg_config.port_pool, len);
isakmp_cfg_config.pool_size, size, strerror(errno));
if (size > isakmp_cfg_config.pool_size) {
unit = sizeof(*isakmp_cfg_config.port_pool);
old_size = isakmp_cfg_config.pool_size;
isakmp_cfg_config.port_pool = new_pool;
isakmp_cfg_config.pool_size = size;
isakmp_cfg_config.network4 = (in_addr_t)0x00000000;
isakmp_cfg_config.netmask4 = (in_addr_t)0x00000000;
isakmp_cfg_config.dns4[i] = (in_addr_t)0x00000000;
isakmp_cfg_config.dns4_index = 0;
isakmp_cfg_config.nbns4[i] = (in_addr_t)0x00000000;
isakmp_cfg_config.nbns4_index = 0;
isakmp_cfg_config.port_pool = NULL;
isakmp_cfg_config.authsource = ISAKMP_CFG_AUTH_SYSTEM;
isakmp_cfg_config.groupsource = ISAKMP_CFG_GROUP_SYSTEM;
if (isakmp_cfg_config.grouplist != NULL) {
for (i = 0; i < isakmp_cfg_config.groupcount; i++)
racoon_free(isakmp_cfg_config.grouplist[i]);
racoon_free(isakmp_cfg_config.grouplist);
isakmp_cfg_config.grouplist = NULL;
isakmp_cfg_config.groupcount = 0;
isakmp_cfg_config.confsource = ISAKMP_CFG_CONF_LOCAL;
isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_NONE;
isakmp_cfg_config.pool_size = 0;
isakmp_cfg_config.auth_throttle = THROTTLE_PENALTY;
strlcpy(isakmp_cfg_config.default_domain, ISAKMP_CFG_DEFAULT_DOMAIN,
strlcpy(isakmp_cfg_config.motd, ISAKMP_CFG_MOTD, MAXPATHLEN);
if (isakmp_cfg_config.splitnet_list != NULL)
splitnet_list_free(isakmp_cfg_config.splitnet_list,
&isakmp_cfg_config.splitnet_count);
isakmp_cfg_config.splitnet_list = NULL;
isakmp_cfg_config.splitnet_count = 0;
isakmp_cfg_config.splitnet_type = 0;
isakmp_cfg_config.pfs_group = 0;
isakmp_cfg_config.save_passwd = 0;
if (isakmp_cfg_config.splitdns_list != NULL)
racoon_free(isakmp_cfg_config.splitdns_list);
isakmp_cfg_config.splitdns_list = NULL;
isakmp_cfg_config.splitdns_len = 0;
confsource = isakmp_cfg_config.confsource;
htonl(ntohl(isakmp_cfg_config.network4)
= isakmp_cfg_config.netmask4;
attr, &isakmp_cfg_config.dns4[0],
isakmp_cfg_config.dns4_index);
attr, &isakmp_cfg_config.nbns4[0],
isakmp_cfg_config.nbns4_index);
if(isakmp_cfg_config.splitnet_count > 0){
&isakmp_cfg_config.splitnet_list->network.addr4.s_addr,
&isakmp_cfg_config.splitnet_list->network.mask4.s_addr);
extern struct isakmp_cfg_config isakmp_cfg_config;
char *filename = &isakmp_cfg_config.motd[0];
isakmp_cfg_config.pfs_group);
isakmp_cfg_config.save_passwd);
attr, isakmp_cfg_config.default_domain);
if(isakmp_cfg_config.splitnet_type == UNITY_SPLIT_INCLUDE)
isakmp_cfg_config.splitnet_list,
isakmp_cfg_config.splitnet_count);
if(isakmp_cfg_config.splitnet_type == UNITY_LOCAL_LAN)
isakmp_cfg_config.splitnet_list,
isakmp_cfg_config.splitnet_count);
isakmp_cfg_config.splitdns_list,
isakmp_cfg_config.splitdns_len);
switch (isakmp_cfg_config.groupsource) {
switch (isakmp_cfg_config.authsource) {
if (!res && (isakmp_cfg_config.groupcount))
isakmp_cfg_config.grouplist,
isakmp_cfg_config.groupcount);
if ((isakmp_cfg_config.authsource == ISAKMP_CFG_AUTH_RADIUS) &&
if ((isakmp_cfg_config.accounting == ISAKMP_CFG_ACCT_RADIUS) &&
if (isakmp_cfg_config.port_pool == NULL) {
&PAM_chat, &isakmp_cfg_config.port_pool[port].pam)) != 0) {
if (isakmp_cfg_config.port_pool[port].pam == NULL) {
pam_strerror(isakmp_cfg_config.port_pool[port].pam,
pam = isakmp_cfg_config.port_pool[port].pam;
isakmp_cfg_config.port_pool[port].pam = NULL;
if ((port < 0) || (port >= isakmp_cfg_config.pool_size)) {
port, isakmp_cfg_config.pool_size - 1);
+ sizeof(isakmp_cfg_config.pool_size);
msg->bufs.buflen[2] = sizeof(isakmp_cfg_config.pool_size);
*pool_size_data = isakmp_cfg_config.pool_size;
+ sizeof(isakmp_cfg_config.pool_size)
msg->bufs.buflen[1] = sizeof(isakmp_cfg_config.pool_size);
memcpy(data, &isakmp_cfg_config.pool_size, msg->bufs.buflen[1]);
+ sizeof(isakmp_cfg_config.pool_size);
msg->bufs.buflen[1] = sizeof(isakmp_cfg_config.pool_size);
memcpy(data, &isakmp_cfg_config.pool_size, msg->bufs.buflen[1]);
if (pool_size != isakmp_cfg_config.pool_size)
if (pool_size != isakmp_cfg_config.pool_size)
if (pool_size != isakmp_cfg_config.pool_size)
if(isakmp_cfg_config.network4 && isakmp_cfg_config.pool_size == 0)
return isakmp_cfg_config.auth_throttle;
penalty.tv_sec = isakmp_cfg_config.auth_throttle;
penalty.tv_sec = isakmp_cfg_config.auth_throttle;
if (isakmp_cfg_config.auth_throttle == 0)