summaryrefslogtreecommitdiff
path: root/src/libhydra/plugins/attr_sql
diff options
context:
space:
mode:
authorRené Mayrhofer <rene@mayrhofer.eu.org>2011-05-19 13:37:29 +0200
committerRené Mayrhofer <rene@mayrhofer.eu.org>2011-05-19 13:37:29 +0200
commit0a9d51a49042a68daa15b0c74a2b7f152f52606b (patch)
tree451888dcb17d00e52114f734e846821373fbbd44 /src/libhydra/plugins/attr_sql
parent568905f488e63e28778f87ac0e38d845f45bae79 (diff)
downloadvyos-strongswan-0a9d51a49042a68daa15b0c74a2b7f152f52606b.tar.gz
vyos-strongswan-0a9d51a49042a68daa15b0c74a2b7f152f52606b.zip
Imported Upstream version 4.5.2
Diffstat (limited to 'src/libhydra/plugins/attr_sql')
-rw-r--r--src/libhydra/plugins/attr_sql/Makefile.in3
-rw-r--r--src/libhydra/plugins/attr_sql/attr_sql_plugin.c9
-rw-r--r--src/libhydra/plugins/attr_sql/pool.c19
-rw-r--r--src/libhydra/plugins/attr_sql/pool_attributes.c24
4 files changed, 38 insertions, 17 deletions
diff --git a/src/libhydra/plugins/attr_sql/Makefile.in b/src/libhydra/plugins/attr_sql/Makefile.in
index 26e7a3038..80d497f59 100644
--- a/src/libhydra/plugins/attr_sql/Makefile.in
+++ b/src/libhydra/plugins/attr_sql/Makefile.in
@@ -253,6 +253,8 @@ nm_ca_dir = @nm_ca_dir@
oldincludedir = @oldincludedir@
openac_plugins = @openac_plugins@
p_plugins = @p_plugins@
+pcsclite_CFLAGS = @pcsclite_CFLAGS@
+pcsclite_LIBS = @pcsclite_LIBS@
pdfdir = @pdfdir@
piddir = @piddir@
pki_plugins = @pki_plugins@
@@ -276,6 +278,7 @@ soup_LIBS = @soup_LIBS@
srcdir = @srcdir@
strongswan_conf = @strongswan_conf@
sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
diff --git a/src/libhydra/plugins/attr_sql/attr_sql_plugin.c b/src/libhydra/plugins/attr_sql/attr_sql_plugin.c
index ca9de023e..c04ec9a01 100644
--- a/src/libhydra/plugins/attr_sql/attr_sql_plugin.c
+++ b/src/libhydra/plugins/attr_sql/attr_sql_plugin.c
@@ -40,9 +40,14 @@ struct private_attr_sql_plugin_t {
* configuration attributes
*/
sql_attribute_t *attribute;
-
};
+METHOD(plugin_t, get_name, char*,
+ private_attr_sql_plugin_t *this)
+{
+ return "attr-sql";
+}
+
METHOD(plugin_t, destroy, void,
private_attr_sql_plugin_t *this)
{
@@ -71,6 +76,8 @@ plugin_t *attr_sql_plugin_create()
INIT(this,
.public = {
.plugin = {
+ .get_name = _get_name,
+ .reload = (void*)return_false,
.destroy = _destroy,
},
},
diff --git a/src/libhydra/plugins/attr_sql/pool.c b/src/libhydra/plugins/attr_sql/pool.c
index b4bdfc629..e81a23ed9 100644
--- a/src/libhydra/plugins/attr_sql/pool.c
+++ b/src/libhydra/plugins/attr_sql/pool.c
@@ -379,7 +379,7 @@ static void add(char *name, host_t *start, host_t *end, int timeout)
chunk_increment(cur_addr);
}
commit_transaction();
- printf("done.\n", count);
+ printf("done.\n");
}
static bool add_address(u_int pool_id, char *address_str, int *family)
@@ -407,9 +407,11 @@ static bool add_address(u_int pool_id, char *address_str, int *family)
fprintf(stderr, "invalid address '%s'.\n", address_str);
return FALSE;
}
- if (family && *family && *family != address->get_family(address))
+ if (family && *family != AF_UNSPEC &&
+ *family != address->get_family(address))
{
fprintf(stderr, "invalid address family '%s'.\n", address_str);
+ address->destroy(address);
return FALSE;
}
@@ -421,9 +423,13 @@ static bool add_address(u_int pool_id, char *address_str, int *family)
DB_UINT, user_id, DB_UINT, 0, DB_UINT, 1) != 1)
{
fprintf(stderr, "inserting address '%s' failed.\n", address_str);
+ address->destroy(address);
return FALSE;
}
- *family = address->get_family(address);
+ if (family)
+ {
+ *family = address->get_family(address);
+ }
address->destroy(address);
return TRUE;
@@ -469,6 +475,10 @@ static void add_addresses(char *pool, char *path, int timeout)
}
if (add_address(pool_id, address_str, &family) == FALSE)
{
+ if (file != stdin)
+ {
+ fclose(file);
+ }
exit(EXIT_FAILURE);
}
++count;
@@ -586,7 +596,7 @@ static void resize(char *name, host_t *end)
DB_UINT, id, DB_BLOB, cur_addr, DB_UINT, 0, DB_UINT, 0, DB_UINT, 1);
}
commit_transaction();
- printf("done.\n", count);
+ printf("done.\n");
}
@@ -1004,6 +1014,7 @@ static void do_args(int argc, char *argv[])
break;
case '1':
operation = OP_STATUS_ATTR;
+ break;
case 'u':
utc = TRUE;
continue;
diff --git a/src/libhydra/plugins/attr_sql/pool_attributes.c b/src/libhydra/plugins/attr_sql/pool_attributes.c
index 5f7afdfcd..5c7397476 100644
--- a/src/libhydra/plugins/attr_sql/pool_attributes.c
+++ b/src/libhydra/plugins/attr_sql/pool_attributes.c
@@ -241,7 +241,7 @@ static bool parse_attributes(char *name, char *value, value_type_t *value_type,
/* clean up */
DESTROY_IF(addr);
- /* is the attribute type numeric? */
+ /* is the attribute type numeric? */
*type = strtol(name, &endptr, 10);
if (*endptr != '\0')
@@ -262,7 +262,7 @@ static bool parse_attributes(char *name, char *value, value_type_t *value_type,
}
return TRUE;
}
-
+
/**
* Lookup/insert an attribute pool by name
*/
@@ -541,11 +541,11 @@ void del_attr(char *name, char *pool, char *identity,
}
}
else
- {
+ {
if (value_type == VALUE_ADDR)
{
host_t *server = host_create_from_chunk(AF_UNSPEC, blob, 0);
-
+
fprintf(stderr, "the %s server %H%s was not found.\n", name,
server, id_pool_str);
server->destroy(server);
@@ -630,7 +630,7 @@ void status_attr(bool hexout)
if (type == attr_info[i].type)
{
value_type = attr_info[i].value_type;
- break;
+ break;
}
}
}
@@ -671,8 +671,8 @@ void status_attr(bool hexout)
}
break;
case VALUE_STRING:
- printf("\"%.*s\"\n", value.len, value.ptr);
- break;
+ printf("\"%.*s\"\n", (int)value.len, value.ptr);
+ break;
case VALUE_HEX:
default:
printf(" %#B\n", &value);
@@ -692,13 +692,13 @@ void show_attr(void)
for (i = 0; i < countof(attr_info); i++)
{
char value_name[10];
-
-
+
+
snprintf(value_name, sizeof(value_name), "%N",
value_type_names, attr_info[i].value_type);
-
- printf("%-20s --%-6s (%N",
- attr_info[i].keyword, value_name,
+
+ printf("%-20s --%-6s (%N",
+ attr_info[i].keyword, value_name,
configuration_attribute_type_names, attr_info[i].type);
if (attr_info[i].type_ip6)