ua_services_session.c 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include "ua_services.h"
  2. #include "ua_application.h"
  3. UA_Int32 Service_CreateSession(SL_Channel channel, const UA_CreateSessionRequest *request, UA_CreateSessionResponse *response) {
  4. #ifdef DEBUG
  5. UA_String_printf("CreateSession Service - endpointUrl=", &(request->endpointUrl));
  6. #endif
  7. UA_Session *newSession;
  8. UA_Int64 timeout;
  9. UA_SessionManager_getSessionTimeout(&timeout);
  10. UA_Session_new(&newSession);
  11. //TODO get maxResponseMessageSize
  12. UA_Session_init(*newSession, (UA_String*)&request->sessionName,
  13. request->requestedSessionTimeout,
  14. request->maxResponseMessageSize,
  15. 9999,
  16. (UA_Session_idProvider)UA_SessionManager_generateSessionId,
  17. timeout);
  18. UA_SessionManager_addSession(newSession);
  19. UA_Session_getId(*newSession, &response->sessionId);
  20. UA_Session_getToken(*newSession, &(response->authenticationToken));
  21. response->revisedSessionTimeout = timeout;
  22. //TODO fill results
  23. return UA_SUCCESS;
  24. }
  25. UA_Int32 Service_ActivateSession(SL_Channel channel,UA_Session session,
  26. const UA_ActivateSessionRequest *request, UA_ActivateSessionResponse *response)
  27. {
  28. UA_Session_bind(session, channel);
  29. UA_Session_setApplicationPointer(session, &appMockup);
  30. #ifdef DEBUG
  31. UA_NodeId_printf("ActivateSession - authToken=", &(request->requestHeader.authenticationToken));
  32. // 321 == AnonymousIdentityToken_Encoding_DefaultBinary
  33. UA_NodeId_printf("ActivateSession - uIdToken.type=", &(request->userIdentityToken.typeId));
  34. UA_ByteString_printx_hex("ActivateSession - uIdToken.body=", &(request->userIdentityToken.body));
  35. #endif
  36. //TODO fill results
  37. return UA_SUCCESS;
  38. }
  39. UA_Int32 Service_CloseSession(UA_Session session, const UA_CloseSessionRequest *request, UA_CloseSessionResponse *response) {
  40. UA_NodeId sessionId;
  41. UA_Session_getId(session,&sessionId);
  42. UA_SessionManager_removeSession(&sessionId);
  43. // FIXME: set response
  44. return UA_SUCCESS;
  45. }