Skip to content

Commit d99cdc2

Browse files
committed
Updated error handling.
1 parent e9038c8 commit d99cdc2

File tree

4 files changed

+18
-15
lines changed

4 files changed

+18
-15
lines changed

src/dm_cgi.f90

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,14 @@ subroutine dm_cgi_form(env, param)
304304
type(cgi_param_type), intent(out) :: param !! CGI parameter type.
305305

306306
character(len=:), allocatable :: content
307+
integer :: rc
307308

308309
if (env%content_type /= MIME_FORM) return
309310
if (env%content_length == 0) return
310-
if (dm_cgi_content(env, content) /= E_NONE) return
311+
312+
rc = dm_cgi_content(env, content)
313+
if (dm_is_error(rc)) return
314+
311315
call dm_cgi_parse(content, param)
312316
end subroutine dm_cgi_form
313317

@@ -350,10 +354,12 @@ subroutine dm_cgi_parse(input, param)
350354
character(len=CGI_PARAM_LEN) :: pair(2)
351355
character(len=CGI_PARAM_LEN) :: pairs(CGI_MAX_PARAMS)
352356
character(len=len(input)) :: content
353-
integer :: i, j, n
357+
integer :: i, j, n, rc
354358

355359
if (len_trim(input) == 0) return
356-
if (dm_cgi_decode(input, content) /= E_NONE) return
360+
361+
rc = dm_cgi_decode(input, content)
362+
if (dm_is_error(rc)) return
357363

358364
n = dm_string_count_char(content, '&') + 1
359365
n = min(n, CGI_MAX_PARAMS)
@@ -465,7 +471,7 @@ integer function cgi_get_logical(param, key, value, default, required) result(rc
465471

466472
rc = E_TYPE
467473
call dm_string_to(param%values(loc), i, stat)
468-
if (stat /= E_NONE) return
474+
if (dm_is_error(stat)) return
469475
value = (i /= 0)
470476
rc = E_NONE
471477
end function cgi_get_logical

src/dm_env.f90

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module dm_env
88
implicit none (type, external)
99
private
1010

11-
integer, parameter :: ENV_BUFFER_LEN = 2048 !! Read buffer length.
11+
integer, parameter :: ENV_BUFFER_LEN = 2048 !! Input buffer length.
1212

1313
interface dm_env_get
1414
!! Generic environment variable access.
@@ -105,7 +105,7 @@ integer function env_get_int32(name, value, default, exists) result(rc)
105105
if (stat /= 0 .or. n == 0) return
106106
if (present(exists)) exists = .true.
107107
call dm_string_to(buffer, i, rc)
108-
if (rc /= E_NONE) return
108+
if (dm_is_error(rc)) return
109109

110110
value = i
111111
rc = E_NONE
@@ -133,7 +133,7 @@ integer function env_get_int64(name, value, default, exists) result(rc)
133133
if (stat /= 0 .or. n == 0) return
134134
if (present(exists)) exists = .true.
135135
call dm_string_to(buffer, i, rc)
136-
if (rc /= E_NONE) return
136+
if (dm_is_error(rc)) return
137137

138138
value = i
139139
rc = E_NONE
@@ -156,7 +156,7 @@ integer function env_get_logical(name, value, default, exists) result(rc)
156156
if (present(exists)) exists = .false.
157157

158158
rc = dm_env_get(name, i)
159-
if (rc /= E_NONE) return
159+
if (dm_is_error(rc)) return
160160
if (present(exists)) exists = .true.
161161

162162
value = (i > 0)
@@ -185,7 +185,7 @@ integer function env_get_real32(name, value, default, exists) result(rc)
185185
if (stat /= 0 .or. n == 0) return
186186
if (present(exists)) exists = .true.
187187
call dm_string_to(buffer, f, rc)
188-
if (rc /= E_NONE) return
188+
if (dm_is_error(rc)) return
189189

190190
value = f
191191
rc = E_NONE
@@ -213,7 +213,7 @@ integer function env_get_real64(name, value, default, exists) result(rc)
213213
if (stat /= 0 .or. n == 0) return
214214
if (present(exists)) exists = .true.
215215
call dm_string_to(buffer, f, rc)
216-
if (rc /= E_NONE) return
216+
if (dm_is_error(rc)) return
217217

218218
value = f
219219
rc = E_NONE

src/dm_logger.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ subroutine logger_out(this, log, unit)
395395

396396
if (.not. this%no_color) call dm_ansi_color(LOGGER_COLORS(level))
397397

398-
if (log%error /= E_NONE) then
398+
if (dm_is_error(log%error)) then
399399
write (unit_, FMT_ERROR) log%timestamp, &
400400
trim(LOG_LEVEL_NAMES(level)), &
401401
trim(log%source), &

src/dm_request.f90

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -647,10 +647,7 @@ pure elemental subroutine request_get_type(request, name, response, status, defa
647647
end block response_block
648648

649649
if (present(status)) status = rc
650-
651-
if (present(default)) then
652-
if (rc /= E_NONE) response = default
653-
endif
650+
if (present(default) .and. dm_is_error(rc)) response = default
654651
end subroutine request_get_type
655652

656653
pure elemental subroutine request_set_int32(request, index, name, value, unit, error)

0 commit comments

Comments
 (0)