Coverage Report

Created: 2024-05-20 06:11

/src/FreeRDP/libfreerdp/core/state.c
Line
Count
Source (jump to first uncovered line)
1
/**
2
 * FreeRDP: A Remote Desktop Protocol Implementation
3
 *
4
 * RDP state machine types and helper functions
5
 *
6
 * Copyright 2022 Armin Novak <anovak@thincast.com>
7
 * Copyright 2022 Thincast Technologies GmbH
8
 *
9
 * Licensed under the Apache License, Version 2.0 (the "License");
10
 * you may not use this file except in compliance with the License.
11
 * You may obtain a copy of the License at
12
 *
13
 *     http://www.apache.org/licenses/LICENSE-2.0
14
 *
15
 * Unless required by applicable law or agreed to in writing, software
16
 * distributed under the License is distributed on an "AS IS" BASIS,
17
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18
 * See the License for the specific language governing permissions and
19
 * limitations under the License.
20
 */
21
22
#include "state.h"
23
24
#include <winpr/string.h>
25
26
BOOL state_run_failed(state_run_t status)
27
15.5k
{
28
15.5k
  switch (status)
29
15.5k
  {
30
15.4k
    case STATE_RUN_FAILED:
31
15.4k
    case STATE_RUN_QUIT_SESSION:
32
15.4k
      return TRUE;
33
134
    default:
34
134
      return FALSE;
35
15.5k
  }
36
15.5k
}
37
38
BOOL state_run_success(state_run_t status)
39
0
{
40
0
  if (status == STATE_RUN_CONTINUE)
41
0
    return TRUE;
42
0
  return status >= STATE_RUN_SUCCESS;
43
0
}
44
45
const char* state_run_result_string(state_run_t status, char* buffer, size_t buffersize)
46
7.99k
{
47
7.99k
  const char* name = NULL;
48
49
7.99k
  switch (status)
50
7.99k
  {
51
0
    case STATE_RUN_ACTIVE:
52
0
      name = "STATE_RUN_ACTIVE";
53
0
      break;
54
0
    case STATE_RUN_REDIRECT:
55
0
      name = "STATE_RUN_REDIRECT";
56
0
      break;
57
0
    case STATE_RUN_SUCCESS:
58
0
      name = "STATE_RUN_SUCCESS";
59
0
      break;
60
7.99k
    case STATE_RUN_FAILED:
61
7.99k
      name = "STATE_RUN_FAILED";
62
7.99k
      break;
63
0
    case STATE_RUN_QUIT_SESSION:
64
0
      name = "STATE_RUN_QUIT_SESSION";
65
0
      break;
66
0
    case STATE_RUN_TRY_AGAIN:
67
0
      name = "STATE_RUN_TRY_AGAIN";
68
0
      break;
69
0
    case STATE_RUN_CONTINUE:
70
0
      name = "STATE_RUN_CONTINUE";
71
0
      break;
72
0
    default:
73
0
      name = "STATE_RUN_UNKNOWN";
74
0
      break;
75
7.99k
  }
76
77
7.99k
  _snprintf(buffer, buffersize, "%s [%d]", name, status);
78
7.99k
  return buffer;
79
7.99k
}
80
81
BOOL state_run_continue(state_run_t status)
82
0
{
83
0
  return (status == STATE_RUN_TRY_AGAIN) || (status == STATE_RUN_CONTINUE) ||
84
0
         (status == STATE_RUN_ACTIVE);
85
0
}