mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 06:45:07 -05:00
cmdmon: refactor allow/deny functions
This commit is contained in:
122
cmdmon.c
122
cmdmon.c
@@ -1078,13 +1078,14 @@ handle_rekey(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_allow(CMD_Request *rx_message, CMD_Reply *tx_message)
|
handle_allowdeny(CMD_Request *rx_message, CMD_Reply *tx_message, int allow, int all)
|
||||||
{
|
{
|
||||||
IPAddr ip;
|
IPAddr ip;
|
||||||
int subnet_bits;
|
int subnet_bits;
|
||||||
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
||||||
if (NCR_AddAccessRestriction(&ip, subnet_bits, 1, 0)) {
|
if (NCR_AddAccessRestriction(&ip, subnet_bits, allow, all)) {
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
tx_message->status = htons(STT_SUCCESS);
|
||||||
} else {
|
} else {
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
tx_message->status = htons(STT_BADSUBNET);
|
||||||
@@ -1094,109 +1095,14 @@ handle_allow(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
handle_allowall(CMD_Request *rx_message, CMD_Reply *tx_message)
|
handle_cmdallowdeny(CMD_Request *rx_message, CMD_Reply *tx_message, int allow, int all)
|
||||||
{
|
{
|
||||||
IPAddr ip;
|
IPAddr ip;
|
||||||
int subnet_bits;
|
int subnet_bits;
|
||||||
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
||||||
if (NCR_AddAccessRestriction(&ip, subnet_bits, 1, 1)) {
|
if (CAM_AddAccessRestriction(&ip, subnet_bits, allow, all)) {
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
|
||||||
} else {
|
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_deny(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|
||||||
{
|
|
||||||
IPAddr ip;
|
|
||||||
int subnet_bits;
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
|
||||||
if (NCR_AddAccessRestriction(&ip, subnet_bits, 0, 0)) {
|
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
|
||||||
} else {
|
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_denyall(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|
||||||
{
|
|
||||||
IPAddr ip;
|
|
||||||
int subnet_bits;
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
|
||||||
if (NCR_AddAccessRestriction(&ip, subnet_bits, 0, 1)) {
|
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
|
||||||
} else {
|
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_cmdallow(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|
||||||
{
|
|
||||||
IPAddr ip;
|
|
||||||
int subnet_bits;
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
|
||||||
if (CAM_AddAccessRestriction(&ip, subnet_bits, 1, 0)) {
|
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
|
||||||
} else {
|
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_cmdallowall(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|
||||||
{
|
|
||||||
IPAddr ip;
|
|
||||||
int subnet_bits;
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
|
||||||
if (CAM_AddAccessRestriction(&ip, subnet_bits, 1, 1)) {
|
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
|
||||||
} else {
|
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_cmddeny(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|
||||||
{
|
|
||||||
IPAddr ip;
|
|
||||||
int subnet_bits;
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
|
||||||
if (CAM_AddAccessRestriction(&ip, subnet_bits, 0, 0)) {
|
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
|
||||||
} else {
|
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ================================================== */
|
|
||||||
|
|
||||||
static void
|
|
||||||
handle_cmddenyall(CMD_Request *rx_message, CMD_Reply *tx_message)
|
|
||||||
{
|
|
||||||
IPAddr ip;
|
|
||||||
int subnet_bits;
|
|
||||||
UTI_IPNetworkToHost(&rx_message->data.allow_deny.ip, &ip);
|
|
||||||
subnet_bits = ntohl(rx_message->data.allow_deny.subnet_bits);
|
|
||||||
if (CAM_AddAccessRestriction(&ip, subnet_bits, 0, 1)) {
|
|
||||||
tx_message->status = htons(STT_SUCCESS);
|
tx_message->status = htons(STT_SUCCESS);
|
||||||
} else {
|
} else {
|
||||||
tx_message->status = htons(STT_BADSUBNET);
|
tx_message->status = htons(STT_BADSUBNET);
|
||||||
@@ -2004,35 +1910,35 @@ read_from_cmd_socket(void *anything)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_ALLOW:
|
case REQ_ALLOW:
|
||||||
handle_allow(&rx_message, &tx_message);
|
handle_allowdeny(&rx_message, &tx_message, 1, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_ALLOWALL:
|
case REQ_ALLOWALL:
|
||||||
handle_allowall(&rx_message, &tx_message);
|
handle_allowdeny(&rx_message, &tx_message, 1, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_DENY:
|
case REQ_DENY:
|
||||||
handle_deny(&rx_message, &tx_message);
|
handle_allowdeny(&rx_message, &tx_message, 0, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_DENYALL:
|
case REQ_DENYALL:
|
||||||
handle_denyall(&rx_message, &tx_message);
|
handle_allowdeny(&rx_message, &tx_message, 0, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_CMDALLOW:
|
case REQ_CMDALLOW:
|
||||||
handle_cmdallow(&rx_message, &tx_message);
|
handle_cmdallowdeny(&rx_message, &tx_message, 1, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_CMDALLOWALL:
|
case REQ_CMDALLOWALL:
|
||||||
handle_cmdallowall(&rx_message, &tx_message);
|
handle_cmdallowdeny(&rx_message, &tx_message, 1, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_CMDDENY:
|
case REQ_CMDDENY:
|
||||||
handle_cmddeny(&rx_message, &tx_message);
|
handle_cmdallowdeny(&rx_message, &tx_message, 0, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_CMDDENYALL:
|
case REQ_CMDDENYALL:
|
||||||
handle_cmddenyall(&rx_message, &tx_message);
|
handle_cmdallowdeny(&rx_message, &tx_message, 0, 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case REQ_ACCHECK:
|
case REQ_ACCHECK:
|
||||||
|
|||||||
Reference in New Issue
Block a user