Przeglądaj źródła

move session services

Julius Pfrommer 11 lat temu
rodzic
commit
7757bf044d
4 zmienionych plików z 39 dodań i 20 usunięć
  1. 2 1
      src/Makefile.am
  2. 3 16
      src/ua_secureLayer.c
  3. 4 3
      src/ua_services.h
  4. 30 0
      src/ua_services_session.c

+ 2 - 1
src/Makefile.am

@@ -63,7 +63,8 @@ libopen62541_la_SOURCES = opcua.c\
 						util/ua_list.c\
 						util/ua_indexedList.c\
 						ua_namespace.c\
-						ua_services_attribute.c
+						ua_services_attribute.c\
+						ua_services_session.c
 
 #bin_PROGRAMS= $(top_builddir)/bin/open62541.out
 #__top_builddir__bin_libOpen62541_out_SOURCES = opcuaServer.c

+ 3 - 16
src/ua_secureLayer.c

@@ -127,28 +127,15 @@ START_HANDLER(GetEndpoints)
 END_HANDLER
 
 START_HANDLER(CreateSession)
-	UA_String_printf("CreateSession Service - endpointUrl=", &(p->endpointUrl));
-	// FIXME: create session
-	r->sessionId.encodingByte = UA_NODEIDTYPE_FOURBYTE;
-	r->sessionId.namespace = 1;
-	r->sessionId.identifier.numeric = 666;
+	 service_createsession(channel, p, r);
 END_HANDLER
 
 START_HANDLER(ActivateSession)
-#pragma GCC diagnostic ignored "-Wunused-variable"
-// FIXME: activate session
-	UA_NodeId_printf("ActivateSession - authToken=", &(p->requestHeader.authenticationToken));
-	// 321 == AnonymousIdentityToken_Encoding_DefaultBinary
-	UA_NodeId_printf("ActivateSession - uIdToken.type=", &(p->userIdentityToken.typeId));
-	UA_ByteString_printx_hex("ActivateSession - uIdToken.body=", &(p->userIdentityToken.body));
-
+	 service_activatesession(channel, p, r);
 END_HANDLER
 
 START_HANDLER(CloseSession)
-#pragma GCC diagnostic ignored "-Wunused-variable"
-
-	// FIXME: close session
-
+	 service_closesession(channel, p, r);
 END_HANDLER
 
 START_HANDLER(Browse)

+ 4 - 3
src/ua_services.h

@@ -4,6 +4,7 @@
 #include "opcua.h"
 #include "ua_application.h"
 #include "ua_statuscodes.h"
+#include "ua_transportLayer.h"
 
 /* Part 4: 5.4 Discovery Service Set */
 // service_findservers
@@ -15,9 +16,9 @@
 // service_closesecurechannel
 
 /* Part 4: 5.6 Session Service Set */
-// service_createsession
-// service_activatesession
-// service_closesession
+UA_Int32 service_createsession(UA_SL_Channel *channel, UA_CreateSessionRequest *request, UA_CreateSessionResponse *response);
+UA_Int32 service_activatesession(UA_SL_Channel *channel, UA_ActivateSessionRequest *request, UA_ActivateSessionResponse *response);
+UA_Int32 service_closesession(UA_SL_Channel *channel, UA_CloseSessionRequest *request, UA_CloseSessionResponse *response);
 // service_cancel
 
 /* Part 4: 5.7 NodeManagement Service Set */

+ 30 - 0
src/ua_services_session.c

@@ -0,0 +1,30 @@
+#include "ua_services.h"
+
+UA_Int32 service_createsession(UA_SL_Channel *channel, UA_CreateSessionRequest *request, UA_CreateSessionResponse *response) {
+	UA_String_printf("CreateSession Service - endpointUrl=", &(request->endpointUrl));
+	// FIXME: create session
+	response->sessionId.encodingByte = UA_NODEIDTYPE_FOURBYTE;
+	response->sessionId.namespace = 1;
+	response->sessionId.identifier.numeric = 666;
+	return UA_SUCCESS;
+}
+
+UA_Int32 service_activatesession(UA_SL_Channel *channel, UA_ActivateSessionRequest *request, UA_ActivateSessionResponse *response) {
+	// FIXME: activate session
+	UA_NodeId_printf("ActivateSession - authToken=", &(request->requestHeader.authenticationToken));
+	// 321 == AnonymousIdentityToken_Encoding_DefaultBinary
+	UA_NodeId_printf("ActivateSession - uIdToken.type=", &(request->userIdentityToken.typeId));
+	UA_ByteString_printx_hex("ActivateSession - uIdToken.body=", &(request->userIdentityToken.body));
+
+	// FIXME: channel->application = <Application Ptr>
+	
+	return UA_SUCCESS;
+}
+
+UA_Int32 service_closesession(UA_SL_Channel *channel, UA_CloseSessionRequest *request, UA_CloseSessionResponse *response) {
+
+	channel->application = UA_NULL;
+	// FIXME: set response
+	
+	return UA_SUCCESS;
+}