Skip to content

Commit

Permalink
Merge branch 'main' into T4-123_RADIUS_key_is_not_encrypted
Browse files Browse the repository at this point in the history
  • Loading branch information
timopollmeier authored Feb 23, 2023
2 parents c3496ac + 32a25b9 commit 0ba9b8f
Show file tree
Hide file tree
Showing 15 changed files with 329 additions and 74 deletions.
31 changes: 0 additions & 31 deletions .github/PULL_REQUEST_TEMPLATE.md

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/build-container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v3
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/container.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push Container image
uses: docker/build-push-action@v3
uses: docker/build-push-action@v4
with:
context: .
push: ${{ github.event_name != 'pull_request' && (github.ref_type == 'tag' || github.ref_name == 'main') }}
Expand Down
26 changes: 0 additions & 26 deletions .github/workflows/release-pontos-manually.yml

This file was deleted.

34 changes: 34 additions & 0 deletions .github/workflows/release-pontos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Release gvmd with pontos

on:
pull_request:
types: [closed]
workflow_dispatch:

jobs:
build-and-release:
name: Create a new release with pontos
# If the event is a workflow_dispatch or the label 'make release' is set and PR is closed because of a merge
if: (github.event_name == 'workflow_dispatch') || (contains( github.event.pull_request.labels.*.name, 'make release') && github.event.pull_request.merged == true)
runs-on: "ubuntu-latest"
steps:
- name: Setting the Reference
run: |
if [[ "${{ github.event_name }}" = "workflow_dispatch" ]]; then
echo "RELEASE_REF=${{ github.ref_name }}" >> $GITHUB_ENV
else
echo "RELEASE_REF=${{ github.base_ref }}" >> $GITHUB_ENV
fi
- name: Release with release action
uses: greenbone/actions/release@v2
with:
python-version: "3.10"
conventional-commits: true
github-user: ${{ secrets.GREENBONE_BOT }}
github-user-mail: ${{ secrets.GREENBONE_BOT_MAIL }}
github-user-token: ${{ secrets.GREENBONE_BOT_TOKEN }}
gpg-key: ${{ secrets.GPG_KEY }}
gpg-fingerprint: ${{ secrets.GPG_FINGERPRINT }}
gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }}
strategy: calendar
ref: ${{ env.RELEASE_REF }}
14 changes: 7 additions & 7 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ find_package (PostgreSQL REQUIRED)
if (NOT PostgreSQL_FOUND)
message (SEND_ERROR "The PostgreSQL library is required.")
endif (NOT PostgreSQL_FOUND)
string (REGEX MATCH "^[ \t]*\([0-9]+\)\\.\([0-9]+\)\(.*\)" TEMP ${PostgreSQL_VERSION_STRING})
string (REGEX MATCH "^[ \t]*\([0-9]+\)\\.\([0-9]+\)\(.*\)" TEMP "${PostgreSQL_VERSION_STRING}")
if (NOT CMAKE_MATCH_1)
message (SEND_ERROR "Error matching PostgreSQL version.")
elseif ((CMAKE_MATCH_1 EQUAL 9 AND CMAKE_MATCH_2 LESS 6)
Expand Down Expand Up @@ -127,7 +127,7 @@ add_executable (manage-utils-test
sql_pg.c manage_pg.c
lsc_user.c lsc_crypt.c utils.c
gmp.c gmp_base.c gmp_configs.c gmp_delete.c gmp_get.c
gmp_license.c
gmp_license.c gmp_logout.c
gmp_port_lists.c gmp_report_formats.c gmp_tickets.c
gmp_tls_certificates.c)

Expand All @@ -154,7 +154,7 @@ add_executable (manage-test
sql_pg.c manage_pg.c
lsc_user.c lsc_crypt.c utils.c
gmp.c gmp_base.c gmp_configs.c gmp_delete.c gmp_get.c
gmp_license.c
gmp_license.c gmp_logout.c
gmp_port_lists.c gmp_report_formats.c gmp_tickets.c
gmp_tls_certificates.c)

Expand All @@ -181,7 +181,7 @@ add_executable (manage-sql-test
sql_pg.c manage_pg.c
lsc_user.c lsc_crypt.c utils.c
gmp.c gmp_base.c gmp_configs.c gmp_delete.c gmp_get.c
gmp_license.c
gmp_license.c gmp_logout.c
gmp_port_lists.c gmp_report_formats.c gmp_tickets.c
gmp_tls_certificates.c)

Expand All @@ -208,7 +208,7 @@ add_executable (gmp-tickets-test
sql_pg.c manage_pg.c
lsc_user.c lsc_crypt.c utils.c
gmp.c gmp_base.c gmp_configs.c gmp_delete.c gmp_get.c
gmp_license.c
gmp_license.c gmp_logout.c
gmp_port_lists.c gmp_report_formats.c gmp_tls_certificates.c)

add_test (gmp-tickets-test gmp-tickets-test)
Expand All @@ -234,7 +234,7 @@ add_executable (utils-test
sql_pg.c manage_pg.c
lsc_user.c lsc_crypt.c
gmp.c gmp_base.c gmp_configs.c gmp_delete.c gmp_get.c
gmp_license.c
gmp_license.c gmp_logout.c
gmp_port_lists.c gmp_report_formats.c gmp_tickets.c
gmp_tls_certificates.c)

Expand Down Expand Up @@ -263,7 +263,7 @@ add_executable (gvmd
sql_pg.c manage_pg.c
lsc_user.c lsc_crypt.c utils.c
gmp.c gmp_base.c gmp_configs.c gmp_delete.c gmp_get.c
gmp_license.c
gmp_license.c gmp_logout.c
gmp_port_lists.c gmp_report_formats.c gmp_tickets.c
gmp_tls_certificates.c)

Expand Down
22 changes: 21 additions & 1 deletion src/gmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
#include "gmp_get.h"
#include "gmp_configs.h"
#include "gmp_license.h"
#include "gmp_logout.h"
#include "gmp_port_lists.h"
#include "gmp_report_formats.h"
#include "gmp_tickets.h"
Expand Down Expand Up @@ -4322,6 +4323,7 @@ typedef enum
CLIENT_GET_VERSION_AUTHENTIC,
CLIENT_GET_VULNS,
CLIENT_HELP,
CLIENT_LOGOUT,
CLIENT_MODIFY_ALERT,
CLIENT_MODIFY_ALERT_ACTIVE,
CLIENT_MODIFY_ALERT_COMMENT,
Expand Down Expand Up @@ -5696,6 +5698,13 @@ gmp_xml_handle_start_element (/* unused */ GMarkupParseContext* context,
&help_data->type);
set_client_state (CLIENT_HELP);
}
else if (strcasecmp ("LOGOUT", element_name) == 0)
{
logout_start (gmp_parser,
attribute_names,
attribute_values);
set_client_state (CLIENT_LOGOUT);
}
else if (strcasecmp ("MODIFY_ALERT", element_name) == 0)
{
modify_alert_data->event_data = make_array ();
Expand Down Expand Up @@ -7684,6 +7693,10 @@ gmp_xml_handle_start_element (/* unused */ GMarkupParseContext* context,
set_read_over (gmp_parser);
break;

case CLIENT_LOGOUT:
logout_element_start (gmp_parser, element_name,
attribute_names, attribute_values);
break;
case CLIENT_MODIFY_LICENSE:
modify_license_element_start (gmp_parser, element_name,
attribute_names, attribute_values);
Expand Down Expand Up @@ -22197,7 +22210,14 @@ gmp_xml_handle_end_element (/* unused */ GMarkupParseContext* context,
}
set_client_state (CLIENT_AUTHENTIC);
break;

case CLIENT_LOGOUT:
{
if (logout_element_end (gmp_parser, error, element_name))
{
set_client_state (CLIENT_TOP);
}
break;
}
case CLIENT_MODIFY_ALERT:
{
event_t event;
Expand Down
123 changes: 123 additions & 0 deletions src/gmp_logout.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
/* Copyright (C) 2021-2022 Greenbone Networks GmbH
*
* SPDX-License-Identifier: AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

/**
* @file gmp_logout.c
* @brief GVM GMP layer: Logout handling
*
* This includes functions for GMP handling of the user logout.
*/

#include "gmp_logout.h"
#include "manage.h"

typedef struct
{
context_data_t *context; ///< XML parser context.
} logout_t;

static logout_t logout_data;

/*
* @brief Reset command data.
*/
static void
logout_reset ()
{
if (logout_data.context->first)
{
free_entity (logout_data.context->first->data);
g_slist_free_1 (logout_data.context->first);
}
g_free (logout_data.context);
memset (&logout_data, 0, sizeof (logout_t));
}

/**
* @brief Start a command.
*
* @param[in] gmp_parser GMP parser.
* @param[in] attribute_names All attribute names.
* @param[in] attribute_values All attribute values.
*/
void
logout_start (gmp_parser_t *gmp_parser,
const gchar **attribute_names,
const gchar **attribute_values)
{
memset (&logout_data, 0, sizeof (logout_t));
logout_data.context = g_malloc0 (sizeof (context_data_t));
logout_element_start (gmp_parser, "logout",
attribute_names, attribute_values);
}

/**
* @brief Start element.
*
* @param[in] gmp_parser GMP parser.
* @param[in] name Element name.
* @param[in] attribute_names All attribute names.
* @param[in] attribute_values All attribute values.
*/
void
logout_element_start (gmp_parser_t *gmp_parser,
const gchar *name,
const gchar **attribute_names,
const gchar **attribute_values)
{
xml_handle_start_element (logout_data.context, name,
attribute_names, attribute_values);
}

/**
* @brief Execute command.
*
* @param[in] gmp_parser GMP parser.
* @param[in] error Error parameter.
*/
static void
logout_run (gmp_parser_t *gmp_parser,
GError **error)
{
logout_user ();
SEND_TO_CLIENT_OR_FAIL ("<logout_response status=\"200\" status_text=\"User logged out\"/>");
logout_reset ();
}

/**
* @brief End element.
*
* @param[in] gmp_parser GMP parser.
* @param[in] error Error parameter.
* @param[in] name Element name.
*
* @return 0 success, 1 command finished.
*/
int
logout_element_end (gmp_parser_t *gmp_parser,
GError **error,
const gchar *name)
{
xml_handle_end_element (logout_data.context, name);
if (logout_data.context->done)
{
logout_run (gmp_parser, error);
return 1;
}
return 0;
}
34 changes: 34 additions & 0 deletions src/gmp_logout.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/* Copyright (C) 2021-2022 Greenbone Networks GmbH
*
* SPDX-License-Identifier: AGPL-3.0-or-later
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "gmp_base.h"

#include <glib.h>
#include <gvm/util/xmlutils.h>

void
logout_start (gmp_parser_t *,
const gchar **,
const gchar **);

void
logout_element_start (gmp_parser_t *, const gchar *,
const gchar **, const gchar **);

int
logout_element_end (gmp_parser_t *, GError **, const gchar *);
Loading

0 comments on commit 0ba9b8f

Please sign in to comment.