ua_stack_session.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * ua_stack_session.c
  3. *
  4. * Created on: 05.06.2014
  5. * Author: root
  6. */
  7. #include "ua_stack_session.h"
  8. typedef struct UA_SessionType
  9. {
  10. UA_NodeId authenticationToken;
  11. UA_NodeId sessionId;
  12. void *applicationPayload;
  13. Application *application;
  14. UA_list_List pendingRequests;
  15. SL_secureChannel channel;
  16. }UA_SessionType;
  17. UA_Boolean UA_Session_compare(UA_Session session1, UA_Session session2)
  18. {
  19. if(session1 && session2)
  20. {
  21. return UA_NodeId_compare(&((UA_SessionType*)session1)->sessionId,
  22. &((UA_SessionType*)session2)->sessionId) == 0;
  23. }
  24. return UA_FALSE;
  25. }
  26. UA_Boolean UA_Session_compareByToken(UA_Session session, UA_NodeId *token)
  27. {
  28. if(session && token)
  29. {
  30. return UA_NodeId_compare(&((UA_SessionType*)session)->authenticationToken, token);
  31. }
  32. return UA_FALSE;
  33. }
  34. UA_Boolean UA_Session_compareById(UA_Session session, UA_NodeId *sessionId)
  35. {
  36. if(session && sessionId)
  37. {
  38. return UA_NodeId_compare(&((UA_SessionType*)session)->sessionId, sessionId);
  39. }
  40. return UA_FALSE;
  41. }
  42. UA_Int32 UA_Session_getId(UA_Session session, UA_NodeId *sessionId)
  43. {
  44. if(session)
  45. {
  46. return UA_NodeId_copy(&((UA_SessionType*)session)->sessionId, sessionId);
  47. }
  48. return UA_ERROR;
  49. }
  50. UA_Int32 UA_Session_getChannel(UA_Session session, SL_secureChannel *channel)
  51. {
  52. if(session)
  53. {
  54. *channel = ((UA_SessionType*)session)->channel;
  55. return UA_SUCCESS;
  56. }
  57. return UA_ERROR;
  58. }