diff options
author | Patrick Griffis <pgriffis@igalia.com> | 2021-01-09 14:19:35 -0600 |
---|---|---|
committer | Patrick Griffis <pgriffis@igalia.com> | 2021-01-09 14:40:18 -0600 |
commit | aaee0a9fa0f0a028eadc4618b741d6dc88550ff9 (patch) | |
tree | e5e8579eec560368643a36aa5c49720d2a063684 | |
parent | 6a2d9585d85fd7e6c5fca8dbc49130e00d2a64e3 (diff) | |
download | libsoup-aaee0a9fa0f0a028eadc4618b741d6dc88550ff9.tar.gz |
Add soup_server_message_get_reason_phrase() to match SoupMessage
-rw-r--r-- | docs/reference/libsoup-3.0-sections.txt | 1 | ||||
-rw-r--r-- | libsoup/server/soup-server-io.c | 11 | ||||
-rw-r--r-- | libsoup/server/soup-server-message.c | 25 | ||||
-rw-r--r-- | libsoup/server/soup-server-message.h | 7 | ||||
-rw-r--r-- | libsoup/server/soup-server.c | 12 | ||||
-rw-r--r-- | tests/auth-test.c | 2 | ||||
-rw-r--r-- | tests/continue-test.c | 6 | ||||
-rw-r--r-- | tests/websocket-test.c | 12 |
8 files changed, 46 insertions, 30 deletions
diff --git a/docs/reference/libsoup-3.0-sections.txt b/docs/reference/libsoup-3.0-sections.txt index d9c4acb2..b8c55a65 100644 --- a/docs/reference/libsoup-3.0-sections.txt +++ b/docs/reference/libsoup-3.0-sections.txt @@ -266,6 +266,7 @@ soup_server_message_get_http_version soup_server_message_set_http_version soup_server_message_get_status soup_server_message_set_status +soup_server_message_get_reason_phrase soup_server_message_get_uri soup_server_message_set_response soup_server_message_set_redirect diff --git a/libsoup/server/soup-server-io.c b/libsoup/server/soup-server-io.c index aaf7829f..7d2831cd 100644 --- a/libsoup/server/soup-server-io.c +++ b/libsoup/server/soup-server-io.c @@ -178,7 +178,7 @@ handle_partial_get (SoupServerMessage *msg) * the response body */ if (soup_server_message_get_method (msg) != SOUP_METHOD_GET || - soup_server_message_get_status (msg, NULL) != SOUP_STATUS_OK || + soup_server_message_get_status (msg) != SOUP_STATUS_OK || soup_message_headers_get_encoding (response_headers) != SOUP_ENCODING_CONTENT_LENGTH || response_body->length == 0 || @@ -281,12 +281,13 @@ write_headers (SoupServerMessage *msg, SoupMessageHeaders *response_headers; SoupMessageBody *response_body; - if (soup_server_message_get_status (msg, NULL) == 0) + if (soup_server_message_get_status (msg) == 0) soup_server_message_set_status (msg, SOUP_STATUS_INTERNAL_SERVER_ERROR, NULL); handle_partial_get (msg); - status_code = soup_server_message_get_status (msg, &reason_phrase); + status_code = soup_server_message_get_status (msg); + reason_phrase = soup_server_message_get_reason_phrase (msg); g_string_append_printf (headers, "HTTP/1.%c %d %s\r\n", soup_server_message_get_http_version (msg) == SOUP_HTTP_1_0 ? '0' : '1', @@ -347,7 +348,7 @@ io_write (SoupServerMessage *msg, switch (io->write_state) { case SOUP_MESSAGE_IO_STATE_HEADERS: - status_code = soup_server_message_get_status (msg, NULL); + status_code = soup_server_message_get_status (msg); if (io->read_state == SOUP_MESSAGE_IO_STATE_BLOCKING && status_code == 0) { /* Client requested "Expect: 100-continue", and * server did not set an error. @@ -372,7 +373,7 @@ io_write (SoupServerMessage *msg, io->written = 0; g_string_truncate (io->write_buf, 0); - status_code = soup_server_message_get_status (msg, NULL); + status_code = soup_server_message_get_status (msg); if (SOUP_STATUS_IS_INFORMATIONAL (status_code)) { if (status_code == SOUP_STATUS_CONTINUE) { /* Stop and wait for the body now */ diff --git a/libsoup/server/soup-server-message.c b/libsoup/server/soup-server-message.c index 8f2423b5..bb9a6385 100644 --- a/libsoup/server/soup-server-message.c +++ b/libsoup/server/soup-server-message.c @@ -630,23 +630,34 @@ soup_server_message_set_http_version (SoupServerMessage *msg, } /** + * soup_server_message_get_reason_phrase: + * @msg: a #SoupServerMessage: + * + * Get the HTTP reason phrase of @msg or %NULL. + * + * Returns: the reason phrase. + */ +const char * +soup_server_message_get_reason_phrase (SoupServerMessage *msg) +{ + g_return_val_if_fail (SOUP_IS_SERVER_MESSAGE (msg), NULL); + + return msg->reason_phrase; +} + +/** * soup_server_message_get_status: * @msg: a #SoupServerMessage - * @reason_phrase: (out) (nullable) (transfer none): a location to store the reason phrase or %NULL * - * Get the HTTP status code of @msg and optionally the reason phrase if @reason_phrase is not %NULL. + * Get the HTTP status code of @msg. * * Returns: the HTTP status code. */ guint -soup_server_message_get_status (SoupServerMessage *msg, - const char **reason_phrase) +soup_server_message_get_status (SoupServerMessage *msg) { g_return_val_if_fail (SOUP_IS_SERVER_MESSAGE (msg), 0); - if (reason_phrase) - *reason_phrase = msg->reason_phrase; - return msg->status_code; } diff --git a/libsoup/server/soup-server-message.h b/libsoup/server/soup-server-message.h index d3f202d0..e47fc45c 100644 --- a/libsoup/server/soup-server-message.h +++ b/libsoup/server/soup-server-message.h @@ -39,8 +39,11 @@ void soup_server_message_set_http_version (SoupServerMessage SoupHTTPVersion version); SOUP_AVAILABLE_IN_ALL -guint soup_server_message_get_status (SoupServerMessage *msg, - const char **reason_phrase); +const char *soup_server_message_get_reason_phrase (SoupServerMessage *msg); + +SOUP_AVAILABLE_IN_ALL +guint soup_server_message_get_status (SoupServerMessage *msg); + SOUP_AVAILABLE_IN_ALL void soup_server_message_set_status (SoupServerMessage *msg, guint status_code, diff --git a/libsoup/server/soup-server.c b/libsoup/server/soup-server.c index f6cddf9c..7b415899 100644 --- a/libsoup/server/soup-server.c +++ b/libsoup/server/soup-server.c @@ -755,7 +755,7 @@ call_handler (SoupServer *server, else if (!early && !handler->callback) return; - if (soup_server_message_get_status (msg, NULL) != 0) + if (soup_server_message_get_status (msg) != 0) return; uri = soup_server_message_get_uri (msg); @@ -803,7 +803,7 @@ got_headers (SoupServer *server, g_free (date_string); g_date_time_unref (date); - if (soup_server_message_get_status (msg, NULL) != 0) + if (soup_server_message_get_status (msg) != 0) return; sock = soup_server_message_get_soup_socket (msg); @@ -915,7 +915,7 @@ got_body (SoupServer *server, g_signal_emit (server, signals[REQUEST_READ], 0, msg); - if (soup_server_message_get_status (msg, NULL) != 0) + if (soup_server_message_get_status (msg) != 0) return; handler = get_handler (server, msg); @@ -925,7 +925,7 @@ got_body (SoupServer *server, } call_handler (server, handler, msg, FALSE); - if (soup_server_message_get_status (msg, NULL) != 0) + if (soup_server_message_get_status (msg) != 0) return; if (handler->websocket_callback) { @@ -952,7 +952,7 @@ client_disconnected (SoupServer *server, priv->clients = g_slist_remove (priv->clients, msg); - if (soup_server_message_get_status (msg, NULL) != 0) + if (soup_server_message_get_status (msg) != 0) soup_server_message_io_finished (msg); } @@ -990,7 +990,7 @@ request_finished (SoupServerMessage *msg, soup_server_message_finished (msg); failed = (completion == SOUP_MESSAGE_IO_INTERRUPTED || - soup_server_message_get_status (msg, NULL) == SOUP_STATUS_INTERNAL_SERVER_ERROR); + soup_server_message_get_status (msg) == SOUP_STATUS_INTERNAL_SERVER_ERROR); g_signal_emit (server, failed ? signals[REQUEST_ABORTED] : signals[REQUEST_FINISHED], 0, msg); diff --git a/tests/auth-test.c b/tests/auth-test.c index 1ec1405d..305179d8 100644 --- a/tests/auth-test.c +++ b/tests/auth-test.c @@ -1188,7 +1188,7 @@ disappear_request_read (SoupServer *server, /* Remove the WWW-Authenticate header if this was a failed attempt */ if (soup_message_headers_get_one (request_headers, "Authorization") && - soup_server_message_get_status (msg, NULL) == SOUP_STATUS_UNAUTHORIZED) + soup_server_message_get_status (msg) == SOUP_STATUS_UNAUTHORIZED) soup_message_headers_remove (response_headers, "WWW-Authenticate"); } diff --git a/tests/continue-test.c b/tests/continue-test.c index ea91f84c..14c00ce2 100644 --- a/tests/continue-test.c +++ b/tests/continue-test.c @@ -33,8 +33,8 @@ server_event (SoupServerMessage *msg, gboolean record_status = (!strcmp (data, "server-wrote_headers") || !strcmp (data, "server-wrote_informational")); - const char *reason_phrase; - guint status_code = soup_server_message_get_status (msg, &reason_phrase); + const char *reason_phrase = soup_server_message_get_reason_phrase (msg); + guint status_code = soup_server_message_get_status (msg); debug_printf (2, " %s", data); if (record_status) @@ -433,7 +433,7 @@ _server_got_headers (SoupServerMessage *msg, guint status_code; SoupMessageHeaders *request_headers; - status_code = soup_server_message_get_status (msg, NULL); + status_code = soup_server_message_get_status (msg); /* FIXME */ if (status_code != SOUP_STATUS_CONTINUE && status_code != 0) return; diff --git a/tests/websocket-test.c b/tests/websocket-test.c index d045d966..714f77fb 100644 --- a/tests/websocket-test.c +++ b/tests/websocket-test.c @@ -679,7 +679,7 @@ test_protocol_negotiate_direct (Test *test, NULL, NULL); g_assert_true (ok); - soup_message_set_status (msg, soup_server_message_get_status (server_msg, NULL), NULL); + soup_message_set_status (msg, soup_server_message_get_status (server_msg), NULL); response_headers = soup_server_message_get_response_headers (server_msg); soup_message_headers_iter_init (&iter, response_headers); while (soup_message_headers_iter_next (&iter, &name, &value)) @@ -749,7 +749,7 @@ test_protocol_mismatch_direct (Test *test, (char **) mismatch_server_protocols, NULL, NULL); g_assert_false (ok); - soup_message_set_status (msg, soup_server_message_get_status (server_msg, NULL), NULL); + soup_message_set_status (msg, soup_server_message_get_status (server_msg), NULL); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); response_headers = soup_server_message_get_response_headers (server_msg); @@ -812,7 +812,7 @@ test_protocol_server_any_direct (Test *test, ok = soup_websocket_server_process_handshake (server_msg, NULL, NULL, NULL, NULL); g_assert_true (ok); - soup_message_set_status (msg, soup_server_message_get_status (server_msg, NULL), NULL); + soup_message_set_status (msg, soup_server_message_get_status (server_msg), NULL); response_headers = soup_server_message_get_response_headers (server_msg); soup_message_headers_iter_init (&iter, response_headers); while (soup_message_headers_iter_next (&iter, &name, &value)) @@ -874,7 +874,7 @@ test_protocol_client_any_direct (Test *test, ok = soup_websocket_server_process_handshake (server_msg, NULL, (char **) all_protocols, NULL, NULL); g_assert_true (ok); - soup_message_set_status (msg, soup_server_message_get_status (server_msg, NULL), NULL); + soup_message_set_status (msg, soup_server_message_get_status (server_msg), NULL); response_headers = soup_server_message_get_response_headers (server_msg); soup_message_headers_iter_init (&iter, response_headers); while (soup_message_headers_iter_next (&iter, &name, &value)) @@ -1733,7 +1733,7 @@ test_deflate_negotiate_direct (Test *test, &accepted_extensions); g_assert (result == deflate_negotiate_tests[i].expected_check_result); - soup_message_set_status (msg, soup_server_message_get_status (server_msg, NULL), NULL); + soup_message_set_status (msg, soup_server_message_get_status (server_msg), NULL); response_headers = soup_server_message_get_response_headers (server_msg); soup_message_headers_iter_init (&iter, response_headers); while (soup_message_headers_iter_next (&iter, &name, &value)) @@ -1812,7 +1812,7 @@ test_deflate_disabled_in_message_direct (Test *test, g_assert_true (soup_websocket_server_process_handshake (server_msg, NULL, NULL, supported_extensions, &accepted_extensions)); g_assert_null (accepted_extensions); - soup_message_set_status (msg, soup_server_message_get_status (server_msg, NULL), NULL); + soup_message_set_status (msg, soup_server_message_get_status (server_msg), NULL); response_headers = soup_server_message_get_response_headers (server_msg); soup_message_headers_iter_init (&iter, response_headers); while (soup_message_headers_iter_next (&iter, &name, &value)) |