@@ -55,17 +55,19 @@ gvm_http_add_header (gvm_http_headers_t *headers, const gchar *header)
5555}
5656
5757gvm_http_response_t *
58- gvm_http_request (const gchar * url , gvm_http_method_t method ,
59- const gchar * payload , gvm_http_headers_t * headers ,
60- const gchar * ca_cert , const gchar * cert , const gchar * key ,
61- gvm_http_response_stream_t stream )
58+ gvm_http_request_unix (const gchar * url , gvm_http_method_t method ,
59+ const gchar * payload , gvm_http_headers_t * headers ,
60+ const gchar * ca_cert , const gchar * cert ,
61+ const gchar * key , const gchar * sock_path ,
62+ gvm_http_response_stream_t stream )
6263{
6364 (void ) headers ;
6465 (void ) ca_cert ;
6566 (void ) cert ;
6667 (void ) key ;
6768 (void ) stream ;
6869 (void ) method ;
70+ (void ) sock_path ;
6971
7072 last_sent_url = g_strdup (url );
7173 last_sent_payload = g_strdup (payload );
@@ -202,6 +204,7 @@ Ensure (agent_controller, connector_free_safely)
202204 const char * apikey = "apikey123" ;
203205 const char * protocol = "https" ;
204206 const char * host = "localhost" ;
207+ const char * socket_path = "/tmp/test.sock" ;
205208 int port = 8443 ;
206209
207210 agent_controller_connector_builder (conn , AGENT_CONTROLLER_CA_CERT , ca_cert );
@@ -212,6 +215,8 @@ Ensure (agent_controller, connector_free_safely)
212215 protocol );
213216 agent_controller_connector_builder (conn , AGENT_CONTROLLER_HOST , host );
214217 agent_controller_connector_builder (conn , AGENT_CONTROLLER_PORT , & port );
218+ agent_controller_connector_builder (conn , AGENT_CONTROLLER_UNIX_SOCKET_PATH ,
219+ & socket_path );
215220
216221 agent_controller_connector_free (conn );
217222 assert_that (true, is_true );
@@ -227,6 +232,7 @@ Ensure (agent_controller, connector_builder_all_valid_fields)
227232 const char * apikey = "123abc" ;
228233 const char * protocol = "https" ;
229234 const char * host = "127.0.0.1" ;
235+ const char * socket_path = "/tmp/test.sock" ;
230236 int port = 8443 ;
231237
232238 assert_that (agent_controller_connector_builder (
@@ -264,6 +270,11 @@ Ensure (agent_controller, connector_builder_all_valid_fields)
264270 is_equal_to (AGENT_CONTROLLER_OK ));
265271 assert_that (conn -> port , is_equal_to (port ));
266272
273+ assert_that (agent_controller_connector_builder (
274+ conn , AGENT_CONTROLLER_UNIX_SOCKET_PATH , socket_path ),
275+ is_equal_to (AGENT_CONTROLLER_OK ));
276+ assert_that (conn -> unix_socket_path , is_equal_to_string (socket_path ));
277+
267278 agent_controller_connector_free (conn );
268279}
269280
@@ -488,6 +499,34 @@ Ensure (agent_controller, send_request_returns_null_if_conn_is_null)
488499 assert_that (resp , is_null );
489500}
490501
502+ Ensure (agent_controller ,
503+ send_request_builds_url_with_socket_and_calls_http_request )
504+ {
505+ agent_controller_connector_t conn = agent_controller_connector_new ();
506+ conn -> protocol = g_strdup ("https" );
507+ conn -> host = g_strdup ("localhost" );
508+ conn -> port = 8080 ;
509+ conn -> ca_cert = g_strdup ("ca.pem" );
510+ conn -> cert = g_strdup ("cert.pem" );
511+ conn -> key = g_strdup ("key.pem" );
512+ conn -> unix_socket_path = g_strdup ("/tmp/test.sock" );
513+
514+ const gchar * path = "/api/v1/test" ;
515+ const gchar * token = "mytoken" ;
516+ const gchar * payload = "{\"key\":\"value\"}" ;
517+
518+ gvm_http_response_t * resp =
519+ agent_controller_send_request (conn , POST , path , payload , token );
520+
521+ assert_that (resp , is_not_null );
522+ assert_that (last_sent_url ,
523+ is_equal_to_string ("http://127.0.0.1/api/v1/test" ));
524+ assert_that (last_sent_payload , is_equal_to_string (payload ));
525+
526+ gvm_http_response_free (resp );
527+ agent_controller_connector_free (conn );
528+ }
529+
491530Ensure (agent_controller , send_request_returns_null_if_protocol_missing )
492531{
493532 agent_controller_connector_t conn = agent_controller_connector_new ();
@@ -2991,6 +3030,9 @@ main (int argc, char **argv)
29913030 send_request_builds_url_and_calls_http_request );
29923031 add_test_with_context (suite , agent_controller ,
29933032 send_request_returns_null_if_conn_is_null );
3033+ add_test_with_context (
3034+ suite , agent_controller ,
3035+ send_request_builds_url_with_socket_and_calls_http_request );
29943036 add_test_with_context (suite , agent_controller ,
29953037 send_request_returns_null_if_protocol_missing );
29963038 add_test_with_context (suite , agent_controller ,
0 commit comments