MqttConnectReasonCodeConverter.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using MQTTnet.Exceptions;
  2. namespace MQTTnet.Protocol
  3. {
  4. public class MqttConnectReasonCodeConverter
  5. {
  6. public MqttConnectReturnCode ToConnectReturnCode(MqttConnectReasonCode reasonCode)
  7. {
  8. switch (reasonCode)
  9. {
  10. case MqttConnectReasonCode.Success:
  11. {
  12. return MqttConnectReturnCode.ConnectionAccepted;
  13. }
  14. case MqttConnectReasonCode.NotAuthorized:
  15. {
  16. return MqttConnectReturnCode.ConnectionRefusedNotAuthorized;
  17. }
  18. case MqttConnectReasonCode.BadUserNameOrPassword:
  19. {
  20. return MqttConnectReturnCode.ConnectionRefusedBadUsernameOrPassword;
  21. }
  22. case MqttConnectReasonCode.ClientIdentifierNotValid:
  23. {
  24. return MqttConnectReturnCode.ConnectionRefusedIdentifierRejected;
  25. }
  26. case MqttConnectReasonCode.UnsupportedProtocolVersion:
  27. {
  28. return MqttConnectReturnCode.ConnectionRefusedUnacceptableProtocolVersion;
  29. }
  30. case MqttConnectReasonCode.ServerUnavailable:
  31. case MqttConnectReasonCode.ServerBusy:
  32. case MqttConnectReasonCode.ServerMoved:
  33. {
  34. return MqttConnectReturnCode.ConnectionRefusedServerUnavailable;
  35. }
  36. default:
  37. {
  38. throw new MqttProtocolViolationException("Unable to convert connect reason code (MQTTv5) to return code (MQTTv3).");
  39. }
  40. }
  41. }
  42. public MqttConnectReasonCode ToConnectReasonCode(MqttConnectReturnCode returnCode)
  43. {
  44. switch (returnCode)
  45. {
  46. case MqttConnectReturnCode.ConnectionAccepted:
  47. {
  48. return MqttConnectReasonCode.Success;
  49. }
  50. case MqttConnectReturnCode.ConnectionRefusedUnacceptableProtocolVersion:
  51. {
  52. return MqttConnectReasonCode.UnsupportedProtocolVersion;
  53. }
  54. case MqttConnectReturnCode.ConnectionRefusedBadUsernameOrPassword:
  55. {
  56. return MqttConnectReasonCode.BadUserNameOrPassword;
  57. }
  58. case MqttConnectReturnCode.ConnectionRefusedIdentifierRejected:
  59. {
  60. return MqttConnectReasonCode.ClientIdentifierNotValid;
  61. }
  62. case MqttConnectReturnCode.ConnectionRefusedServerUnavailable:
  63. {
  64. return MqttConnectReasonCode.ServerUnavailable;
  65. }
  66. case MqttConnectReturnCode.ConnectionRefusedNotAuthorized:
  67. {
  68. return MqttConnectReasonCode.NotAuthorized;
  69. }
  70. default:
  71. {
  72. throw new MqttProtocolViolationException("Unable to convert connect reason code (MQTTv5) to return code (MQTTv3).");
  73. }
  74. }
  75. }
  76. }
  77. }