summaryrefslogtreecommitdiffstats
path: root/lasso/id-ff/server_environ.c
diff options
context:
space:
mode:
Diffstat (limited to 'lasso/id-ff/server_environ.c')
-rw-r--r--lasso/id-ff/server_environ.c68
1 files changed, 33 insertions, 35 deletions
diff --git a/lasso/id-ff/server_environ.c b/lasso/id-ff/server_environ.c
index 3b23f19c..10859bad 100644
--- a/lasso/id-ff/server_environ.c
+++ b/lasso/id-ff/server_environ.c
@@ -28,47 +28,42 @@
/* public methods */
/*****************************************************************************/
-/* add a provider, return the number of providers in the server context */
-int lasso_server_environ_add_provider(LassoServerEnviron *env, LassoProvider *provider){
- LassoNodeClass *class;
+int lasso_server_environ_add_provider_from_file(LassoServerEnviron *server, char *filename){
+ LassoProvider *provider, *p;
- class = LASSO_NODE_GET_CLASS(env);
- class->add_child(LASSO_NODE(env), LASSO_NODE(provider), TRUE);
- env->nbProviders++;
+ provider = lasso_provider_new_from_filename(filename);
+ g_ptr_array_add(server->providers, provider);
- return(env->nbProviders);
+ return(1);
}
-int lasso_server_environ_add_provider_filename(LassoServerEnviron *env, char *filename){
- LassoNodeClass *class;
+LassoProvider *lasso_server_environ_get_provider(LassoServerEnviron *server, char *providerID){
LassoProvider *provider;
- int nb;
-
- provider = lasso_provider_new_metadata_from_filename("./sp.xml");
- nb = lasso_server_environ_add_provider(env, provider);
-
- return(nb);
-}
-
-LassoProvider *lasso_server_environ_get_provider(LassoServerEnviron *env, const char *providerId){
- LassoProvider *provider;
- GPtrArray *children;
+ char *id;
int index, len;
- children = lasso_node_get_children(LASSO_NODE(env));
- len = children->len;
- index = 0;
- while(index<len){
- provider = (LassoProvider *)g_ptr_array_index(children, index);
- if(lasso_provider_is_providerId(provider, providerId)){
+ len = server->providers->len;
+ for(index = 0; index<len; index++){
+ provider = g_ptr_array_index(server->providers, index);
+
+ id = lasso_provider_get_providerID(provider);
+ if(!strcmp(providerID, id)){
return(provider);
}
- index++;
}
-
+
return(NULL);
}
+int lasso_server_environ_set_security(char *private_key, char *public_key, char *certificate){
+ g_return_if_fail(private_key);
+ g_return_if_fail(public_key);
+ g_return_if_fail(certificate);
+
+
+
+}
+
/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
@@ -76,10 +71,7 @@ LassoProvider *lasso_server_environ_get_provider(LassoServerEnviron *env, const
static void
lasso_server_environ_instance_init(LassoServerEnviron *env)
{
- LassoNodeClass *class = LASSO_NODE_GET_CLASS(LASSO_NODE(env));
- class->set_name(LASSO_NODE(env), "ServerEnviron");
- env->nbProviders = 0;
}
static void
@@ -102,7 +94,7 @@ GType lasso_server_environ_get_type() {
(GInstanceInitFunc) lasso_server_environ_instance_init,
};
- this_type = g_type_register_static(LASSO_TYPE_NODE,
+ this_type = g_type_register_static(LASSO_TYPE_ENVIRON,
"LassoServerEnviron",
&this_info, 0);
}
@@ -111,10 +103,16 @@ GType lasso_server_environ_get_type() {
LassoServerEnviron *lasso_server_environ_new()
{
- LassoServerEnviron *env;
+ LassoServerEnviron *server;
+
+ server = g_object_new(LASSO_TYPE_SERVER_ENVIRON, NULL);
+
+ server->providers = g_ptr_array_new();
- env = LASSO_SERVER_ENVIRON(g_object_new(LASSO_TYPE_SERVER_ENVIRON, NULL));
+ server->private_key = NULL;
+ server->public_key = NULL;
+ server->certificate = NULL;
- return(env);
+ return(server);
}