cmdparse: add function to convert error status to string
This is used to avoid duplication of error printing in chronyd and chronyc.
This commit is contained in:
parent
fc73accfe5
commit
e57abae138
4 changed files with 81 additions and 100 deletions
51
client.c
51
client.c
|
@ -930,6 +930,7 @@ process_cmd_add_server_or_peer(CMD_Request *msg, char *line)
|
|||
CPS_NTP_Source data;
|
||||
CPS_Status status;
|
||||
IPAddr ip_addr;
|
||||
char str[64];
|
||||
int result = 0;
|
||||
|
||||
status = CPS_ParseNTPSourceAdd(line, &data);
|
||||
|
@ -992,53 +993,9 @@ process_cmd_add_server_or_peer(CMD_Request *msg, char *line)
|
|||
result = 1;
|
||||
|
||||
break;
|
||||
case CPS_BadOption:
|
||||
fprintf(stderr, "Unrecognized subcommand\n");
|
||||
break;
|
||||
case CPS_BadHost:
|
||||
fprintf(stderr, "Invalid host/IP address\n");
|
||||
break;
|
||||
case CPS_BadPort:
|
||||
fprintf(stderr, "Unreadable port number\n");
|
||||
break;
|
||||
case CPS_BadMinpoll:
|
||||
fprintf(stderr, "Unreadable minpoll value\n");
|
||||
break;
|
||||
case CPS_BadMaxpoll:
|
||||
fprintf(stderr, "Unreadable maxpoll value\n");
|
||||
break;
|
||||
case CPS_BadPresend:
|
||||
fprintf(stderr, "Unreadable presend value\n");
|
||||
break;
|
||||
case CPS_BadMaxdelaydevratio:
|
||||
fprintf(stderr, "Unreadable max delay dev ratio value\n");
|
||||
break;
|
||||
case CPS_BadMaxdelayratio:
|
||||
fprintf(stderr, "Unreadable max delay ratio value\n");
|
||||
break;
|
||||
case CPS_BadMaxdelay:
|
||||
fprintf(stderr, "Unreadable max delay value\n");
|
||||
break;
|
||||
case CPS_BadKey:
|
||||
fprintf(stderr, "Unreadable key value\n");
|
||||
break;
|
||||
case CPS_BadMinstratum:
|
||||
fprintf(stderr, "Unreadable minstratum value\n");
|
||||
break;
|
||||
case CPS_BadPolltarget:
|
||||
fprintf(stderr, "Unreadable polltarget value\n");
|
||||
break;
|
||||
case CPS_BadVersion:
|
||||
fprintf(stderr, "Unreadable version value\n");
|
||||
break;
|
||||
case CPS_BadMaxsources:
|
||||
fprintf(stderr, "Unreadable maxsources value\n");
|
||||
break;
|
||||
case CPS_BadMinsamples:
|
||||
fprintf(stderr, "Unreadable minsamples value\n");
|
||||
break;
|
||||
case CPS_BadMaxsamples:
|
||||
fprintf(stderr, "Unreadable maxsamples value\n");
|
||||
default:
|
||||
CPS_StatusToString(status, str, sizeof (str));
|
||||
fprintf(stderr, "%s\n", str);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
66
cmdparse.c
66
cmdparse.c
|
@ -217,6 +217,72 @@ CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src)
|
|||
|
||||
/* ================================================== */
|
||||
|
||||
void
|
||||
CPS_StatusToString(CPS_Status status, char *dest, int len)
|
||||
{
|
||||
const char *s = NULL;
|
||||
|
||||
if (len > 0)
|
||||
dest[0] = '\0';
|
||||
|
||||
switch (status) {
|
||||
case CPS_Success:
|
||||
return;
|
||||
case CPS_BadOption:
|
||||
s = "server/peer/pool option";
|
||||
break;
|
||||
case CPS_BadHost:
|
||||
s = "address";
|
||||
break;
|
||||
case CPS_BadPort:
|
||||
s = "port";
|
||||
break;
|
||||
case CPS_BadMinpoll:
|
||||
s = "minpoll";
|
||||
break;
|
||||
case CPS_BadMaxpoll:
|
||||
s = "maxpoll";
|
||||
break;
|
||||
case CPS_BadPresend:
|
||||
s = "presend";
|
||||
break;
|
||||
case CPS_BadMaxdelaydevratio:
|
||||
s = "maxdelaydevratio";
|
||||
break;
|
||||
case CPS_BadMaxdelayratio:
|
||||
s = "maxdelayratio";
|
||||
break;
|
||||
case CPS_BadMaxdelay:
|
||||
s = "maxdelay";
|
||||
break;
|
||||
case CPS_BadKey:
|
||||
s = "key";
|
||||
break;
|
||||
case CPS_BadMinstratum:
|
||||
s = "minstratum";
|
||||
break;
|
||||
case CPS_BadPolltarget:
|
||||
s = "polltarget";
|
||||
break;
|
||||
case CPS_BadVersion:
|
||||
s = "version";
|
||||
break;
|
||||
case CPS_BadMaxsources:
|
||||
s = "maxsources";
|
||||
break;
|
||||
case CPS_BadMinsamples:
|
||||
s = "minsamples";
|
||||
break;
|
||||
case CPS_BadMaxsamples:
|
||||
s = "maxsamples";
|
||||
break;
|
||||
}
|
||||
|
||||
snprintf(dest, len, "Invalid %s", s);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
void
|
||||
CPS_NormalizeLine(char *line)
|
||||
{
|
||||
|
|
|
@ -59,6 +59,9 @@ typedef struct {
|
|||
/* Parse a command to add an NTP server or peer */
|
||||
extern CPS_Status CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src);
|
||||
|
||||
/* Get a string describing error status */
|
||||
extern void CPS_StatusToString(CPS_Status status, char *dest, int len);
|
||||
|
||||
/* Remove extra white-space and comments */
|
||||
extern void CPS_NormalizeLine(char *line);
|
||||
|
||||
|
|
61
conf.c
61
conf.c
|
@ -583,65 +583,20 @@ parse_source(char *line, NTP_Source_Type type, int pool)
|
|||
{
|
||||
CPS_Status status;
|
||||
NTP_Source source;
|
||||
char str[64];
|
||||
|
||||
source.type = type;
|
||||
source.pool = pool;
|
||||
status = CPS_ParseNTPSourceAdd(line, &source.params);
|
||||
|
||||
switch (status) {
|
||||
case CPS_Success:
|
||||
source.params.name = Strdup(source.params.name);
|
||||
ARR_AppendElement(ntp_sources, &source);
|
||||
break;
|
||||
case CPS_BadOption:
|
||||
other_parse_error("Invalid server/peer parameter");
|
||||
break;
|
||||
case CPS_BadHost:
|
||||
other_parse_error("Invalid host/IP address");
|
||||
break;
|
||||
case CPS_BadPort:
|
||||
other_parse_error("Unreadable port");
|
||||
break;
|
||||
case CPS_BadMinpoll:
|
||||
other_parse_error("Unreadable minpoll");
|
||||
break;
|
||||
case CPS_BadMaxpoll:
|
||||
other_parse_error("Unreadable maxpoll");
|
||||
break;
|
||||
case CPS_BadPresend:
|
||||
other_parse_error("Unreadable presend");
|
||||
break;
|
||||
case CPS_BadMaxdelaydevratio:
|
||||
other_parse_error("Unreadable maxdelaydevratio");
|
||||
break;
|
||||
case CPS_BadMaxdelayratio:
|
||||
other_parse_error("Unreadable maxdelayratio");
|
||||
break;
|
||||
case CPS_BadMaxdelay:
|
||||
other_parse_error("Unreadable maxdelay");
|
||||
break;
|
||||
case CPS_BadKey:
|
||||
other_parse_error("Unreadable key");
|
||||
break;
|
||||
case CPS_BadMinstratum:
|
||||
other_parse_error("Unreadable minstratum");
|
||||
break;
|
||||
case CPS_BadPolltarget:
|
||||
other_parse_error("Unreadable polltarget");
|
||||
break;
|
||||
case CPS_BadVersion:
|
||||
other_parse_error("Unreadable version");
|
||||
break;
|
||||
case CPS_BadMaxsources:
|
||||
other_parse_error("Unreadable maxsources");
|
||||
break;
|
||||
case CPS_BadMinsamples:
|
||||
other_parse_error("Unreadable minsamples");
|
||||
break;
|
||||
case CPS_BadMaxsamples:
|
||||
other_parse_error("Unreadable maxsamples");
|
||||
break;
|
||||
if (status != CPS_Success) {
|
||||
CPS_StatusToString(status, str, sizeof (str));
|
||||
other_parse_error(str);
|
||||
return;
|
||||
}
|
||||
|
||||
source.params.name = Strdup(source.params.name);
|
||||
ARR_AppendElement(ntp_sources, &source);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
|
Loading…
Reference in a new issue