Improve status checking and printing in chronyc
This commit is contained in:
parent
77e79e8359
commit
6b38523c9c
1 changed files with 110 additions and 324 deletions
434
client.c
434
client.c
|
@ -1374,6 +1374,99 @@ submit_request(CMD_Request *request, CMD_Reply *reply, int *reply_auth_ok)
|
|||
|
||||
/* ================================================== */
|
||||
|
||||
static int
|
||||
request_reply(CMD_Request *request, CMD_Reply *reply, int requested_reply, int verbose)
|
||||
{
|
||||
int reply_auth_ok;
|
||||
int status;
|
||||
|
||||
if (!submit_request(request, reply, &reply_auth_ok)) {
|
||||
printf("506 Cannot talk to daemon\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
status = ntohs(reply->status);
|
||||
|
||||
if (verbose || status != STT_SUCCESS) {
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
printf("200 OK");
|
||||
break;
|
||||
case STT_ACCESSALLOWED:
|
||||
printf("208 Access allowed");
|
||||
break;
|
||||
case STT_ACCESSDENIED:
|
||||
printf("209 Access denied");
|
||||
break;
|
||||
case STT_FAILED:
|
||||
printf("500 Failure");
|
||||
break;
|
||||
case STT_UNAUTH:
|
||||
printf("501 Not authorised");
|
||||
break;
|
||||
case STT_INVALID:
|
||||
printf("502 Invalid command");
|
||||
break;
|
||||
case STT_NOSUCHSOURCE:
|
||||
printf("503 No such source");
|
||||
break;
|
||||
case STT_INVALIDTS:
|
||||
printf("504 Duplicate or stale logon detected");
|
||||
break;
|
||||
case STT_NOTENABLED:
|
||||
printf("505 Facility not enabled in daemon");
|
||||
break;
|
||||
case STT_BADSUBNET:
|
||||
printf("507 Bad subnet");
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host");
|
||||
break;
|
||||
case STT_SOURCEALREADYKNOWN:
|
||||
printf("511 Source already present");
|
||||
break;
|
||||
case STT_TOOMANYSOURCES:
|
||||
printf("512 Too many sources present");
|
||||
break;
|
||||
case STT_NORTC:
|
||||
printf("513 RTC driver not running");
|
||||
break;
|
||||
case STT_BADRTCFILE:
|
||||
printf("514 Can't write RTC parameters");
|
||||
break;
|
||||
case STT_INVALIDAF:
|
||||
printf("515 Invalid address family");
|
||||
break;
|
||||
case STT_BADSAMPLE:
|
||||
printf("516 Sample index out of range");
|
||||
break;
|
||||
case STT_INACTIVE:
|
||||
printf("519 Client logging is not active in the daemon");
|
||||
break;
|
||||
default:
|
||||
printf("520 Got unexpected error from daemon");
|
||||
}
|
||||
if (reply_auth_ok) {
|
||||
printf("\n");
|
||||
} else {
|
||||
printf(" --- Reply not authenticated\n");
|
||||
}
|
||||
}
|
||||
|
||||
if (status != STT_SUCCESS) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (ntohs(reply->reply) != requested_reply) {
|
||||
printf("508 Bad reply from daemon\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
||||
static void
|
||||
print_seconds(unsigned long s)
|
||||
{
|
||||
|
@ -1444,8 +1537,6 @@ check_for_verbose_flag(char *line)
|
|||
static void
|
||||
process_cmd_sources(char *line)
|
||||
{
|
||||
int submit_ok;
|
||||
int auth_ok;
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
int n_sources, i;
|
||||
|
@ -1459,29 +1550,12 @@ process_cmd_sources(char *line)
|
|||
uint16_t state, mode;
|
||||
double resid_freq, resid_skew;
|
||||
char hostname_buf[32];
|
||||
uint16_t status;
|
||||
|
||||
/* Check whether to output verbose headers */
|
||||
verbose = check_for_verbose_flag(line);
|
||||
|
||||
request.command = htons(REQ_N_SOURCES);
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_INVALID:
|
||||
printf("502 Invalid command\n");
|
||||
return;
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (request_reply(&request, &reply, RPY_N_SOURCES, 0)) {
|
||||
n_sources = ntohl(reply.data.n_sources.n_sources);
|
||||
printf("210 Number of sources = %d\n", n_sources);
|
||||
if (verbose) {
|
||||
|
@ -1504,10 +1578,7 @@ process_cmd_sources(char *line)
|
|||
for (i=0; i<n_sources; i++) {
|
||||
request.command = htons(REQ_SOURCE_DATA);
|
||||
request.data.source_data.index = htonl(i);
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
if (ntohs(reply.status) == STT_SUCCESS) {
|
||||
if (request_reply(&request, &reply, RPY_SOURCE_DATA, 0)) {
|
||||
UTI_IPNetworkToHost(&reply.data.source_data.ip_addr, &ip_addr);
|
||||
poll = ntohs(reply.data.source_data.poll);
|
||||
stratum = ntohs(reply.data.source_data.stratum);
|
||||
|
@ -1562,11 +1633,8 @@ process_cmd_sources(char *line)
|
|||
printf(" +/- ");
|
||||
print_microseconds(latest_meas_err);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
printf("506 Cannot talk to daemon\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1576,8 +1644,6 @@ process_cmd_sources(char *line)
|
|||
static void
|
||||
process_cmd_sourcestats(char *line)
|
||||
{
|
||||
int submit_ok;
|
||||
int auth_ok;
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
int n_sources, i;
|
||||
|
@ -1589,28 +1655,11 @@ process_cmd_sourcestats(char *line)
|
|||
unsigned long sd_us;
|
||||
unsigned long ref_id;
|
||||
IPAddr ip_addr;
|
||||
unsigned short status;
|
||||
|
||||
verbose = check_for_verbose_flag(line);
|
||||
|
||||
request.command = htons(REQ_N_SOURCES);
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_INVALID:
|
||||
printf("502 Invalid command\n");
|
||||
return;
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (request_reply(&request, &reply, RPY_N_SOURCES, 0)) {
|
||||
n_sources = ntohl(reply.data.n_sources.n_sources);
|
||||
printf("210 Number of sources = %d\n", n_sources);
|
||||
if (verbose) {
|
||||
|
@ -1632,11 +1681,7 @@ process_cmd_sourcestats(char *line)
|
|||
for (i=0; i<n_sources; i++) {
|
||||
request.command = htons(REQ_SOURCESTATS);
|
||||
request.data.source_data.index = htonl(i);
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
if (ntohs(reply.status) == STT_SUCCESS) {
|
||||
|
||||
if (request_reply(&request, &reply, RPY_SOURCESTATS, 0)) {
|
||||
ref_id = ntohl(reply.data.sourcestats.ref_id);
|
||||
UTI_IPNetworkToHost(&reply.data.sourcestats.ip_addr, &ip_addr);
|
||||
n_samples = ntohl(reply.data.sourcestats.n_samples);
|
||||
|
@ -1660,11 +1705,8 @@ process_cmd_sourcestats(char *line)
|
|||
printf(" %10.3f %10.3f ", resid_freq_ppm, skew_ppm);
|
||||
print_microseconds(sd_us);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
printf("506 Cannot talk to daemon\n");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1674,9 +1716,6 @@ process_cmd_sourcestats(char *line)
|
|||
static void
|
||||
process_cmd_tracking(char *line)
|
||||
{
|
||||
int status;
|
||||
int submit_ok;
|
||||
int auth_ok;
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
IPAddr ip_addr;
|
||||
|
@ -1695,23 +1734,7 @@ process_cmd_tracking(char *line)
|
|||
double root_dispersion;
|
||||
|
||||
request.command = htons(REQ_TRACKING);
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_INVALID:
|
||||
printf("502 Invalid command\n");
|
||||
return;
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (request_reply(&request, &reply, RPY_TRACKING, 0)) {
|
||||
ref_id = ntohl(reply.data.tracking.ref_id);
|
||||
a = (ref_id >> 24);
|
||||
b = (ref_id >> 16) & 0xff;
|
||||
|
@ -1748,8 +1771,6 @@ process_cmd_tracking(char *line)
|
|||
printf("Skew : %.3f ppm\n", skew_ppm);
|
||||
printf("Root delay : %.6f seconds\n", root_delay);
|
||||
printf("Root dispersion : %.6f seconds\n", root_dispersion);
|
||||
} else {
|
||||
printf("506 Cannot talk to daemon\n");
|
||||
}
|
||||
}
|
||||
/* ================================================== */
|
||||
|
@ -1757,9 +1778,6 @@ process_cmd_tracking(char *line)
|
|||
static void
|
||||
process_cmd_rtcreport(char *line)
|
||||
{
|
||||
int status;
|
||||
int submit_ok;
|
||||
int auth_ok;
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
struct timeval ref_time;
|
||||
|
@ -1771,26 +1789,7 @@ process_cmd_rtcreport(char *line)
|
|||
double coef_gain_rate_ppm;
|
||||
|
||||
request.command = htons(REQ_RTCREPORT);
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_INVALID:
|
||||
printf("502 Invalid command\n");
|
||||
return;
|
||||
break;
|
||||
case STT_NORTC:
|
||||
printf("513 No RTC driver\n");
|
||||
return;
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (request_reply(&request, &reply, RPY_RTC, 0)) {
|
||||
UTI_TimevalNetworkToHost(&reply.data.rtc.ref_time, &ref_time);
|
||||
ref_time_tm = *gmtime(&ref_time.tv_sec);
|
||||
n_samples = ntohs(reply.data.rtc.n_samples);
|
||||
|
@ -1806,8 +1805,6 @@ process_cmd_rtcreport(char *line)
|
|||
printf("\n");
|
||||
printf("RTC is fast by : %12.6f seconds\n", coef_seconds_fast);
|
||||
printf("RTC gains time at : %9.3f ppm\n", coef_gain_rate_ppm);
|
||||
} else {
|
||||
printf("506 Cannot talk to daemon\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1833,8 +1830,6 @@ process_cmd_clients(char *line)
|
|||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
SubnetToDo *head, *todo, *tail, *p, *next_node, *new_node;
|
||||
int submit_ok, auth_ok;
|
||||
int status;
|
||||
int i, j, nets_looked_up, clients_looked_up;
|
||||
int word;
|
||||
unsigned long mask;
|
||||
|
@ -1882,12 +1877,7 @@ process_cmd_clients(char *line)
|
|||
|
||||
request.data.subnets_accessed.n_subnets = htonl(nets_looked_up);
|
||||
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
if (request_reply(&request, &reply, RPY_SUBNETS_ACCESSED, 0)) {
|
||||
n_replies = ntohl(reply.data.subnets_accessed.n_subnets);
|
||||
for (j=0; j<n_replies; j++) {
|
||||
ip = ntohl(reply.data.subnets_accessed.subnets[j].ip);
|
||||
|
@ -1918,24 +1908,9 @@ process_cmd_clients(char *line)
|
|||
todo = todo->next;
|
||||
}
|
||||
|
||||
break;
|
||||
case STT_BADSUBNET:
|
||||
/* We should never generate any bad subnet messages */
|
||||
assert(0);
|
||||
break;
|
||||
case STT_INACTIVE:
|
||||
printf("519 Client logging is not active in the daemon\n");
|
||||
goto cleanup;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
goto cleanup;
|
||||
default:
|
||||
printf("520 Got unexpected error from daemon\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
} else {
|
||||
printf("506 Cannot talk to daemon\n");
|
||||
return;
|
||||
}
|
||||
} while (1); /* keep going until all subnets have been expanded,
|
||||
|
@ -1972,12 +1947,7 @@ process_cmd_clients(char *line)
|
|||
|
||||
request.data.client_accesses.n_clients = htonl(clients_looked_up);
|
||||
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
if (request_reply(&request, &reply, RPY_CLIENT_ACCESSES, 0)) {
|
||||
n_replies = ntohl(reply.data.client_accesses.n_clients);
|
||||
for (j=0; j<n_replies; j++) {
|
||||
ip = ntohl(reply.data.client_accesses.clients[j].ip);
|
||||
|
@ -2024,23 +1994,6 @@ process_cmd_clients(char *line)
|
|||
todo = todo->next;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case STT_BADSUBNET:
|
||||
/* We should never generate any bad subnet messages */
|
||||
assert(0);
|
||||
break;
|
||||
case STT_INACTIVE:
|
||||
printf("519 Client logging is not active in the daemon\n");
|
||||
goto cleanup;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
goto cleanup;
|
||||
default:
|
||||
printf("520 Got unexpected error from daemon\n");
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} while (1);
|
||||
|
@ -2063,8 +2016,6 @@ process_cmd_clients(char *line)
|
|||
{
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
int submit_ok, auth_ok;
|
||||
int status;
|
||||
unsigned long next_index;
|
||||
int j;
|
||||
IPAddr ip;
|
||||
|
@ -2091,12 +2042,7 @@ process_cmd_clients(char *line)
|
|||
request.data.client_accesses_by_index.first_index = htonl(next_index);
|
||||
request.data.client_accesses_by_index.n_indices = htonl(MAX_CLIENT_ACCESSES);
|
||||
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
if (request_reply(&request, &reply, RPY_CLIENT_ACCESSES_BY_INDEX, 0)) {
|
||||
n_replies = ntohl(reply.data.client_accesses_by_index.n_clients);
|
||||
n_indices_in_table = ntohl(reply.data.client_accesses_by_index.n_indices);
|
||||
if (n_replies == 0) {
|
||||
|
@ -2144,25 +2090,7 @@ process_cmd_clients(char *line)
|
|||
if (next_index >= n_indices_in_table) {
|
||||
goto finished;
|
||||
}
|
||||
|
||||
break;
|
||||
case STT_BADSUBNET:
|
||||
/* We should never generate any bad subnet messages */
|
||||
assert(0);
|
||||
break;
|
||||
case STT_INACTIVE:
|
||||
printf("519 Client logging is not active in the daemon\n");
|
||||
goto finished;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
goto finished;
|
||||
default:
|
||||
printf("520 Got unexpected error from daemon\n");
|
||||
goto finished;
|
||||
}
|
||||
|
||||
} else {
|
||||
printf("506 Cannot talk to daemon\n");
|
||||
return;
|
||||
}
|
||||
} while (1); /* keep going until all subnets have been expanded,
|
||||
|
@ -2181,8 +2109,6 @@ process_cmd_manual_list(const char *line)
|
|||
{
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
int submit_ok, auth_ok;
|
||||
int status;
|
||||
int n_samples;
|
||||
RPY_ManualListSample *sample;
|
||||
int i;
|
||||
|
@ -2190,12 +2116,7 @@ process_cmd_manual_list(const char *line)
|
|||
double slewed_offset, orig_offset, residual;
|
||||
|
||||
request.command = htons(REQ_MANUAL_LIST);
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
if (request_reply(&request, &reply, RPY_MANUAL_LIST, 0)) {
|
||||
n_samples = ntohl(reply.data.manual_list.n_samples);
|
||||
printf("210 n_samples = %d\n", n_samples);
|
||||
printf("# Date Time(UTC) Slewed Original Residual\n"
|
||||
|
@ -2208,14 +2129,6 @@ process_cmd_manual_list(const char *line)
|
|||
residual = WIRE2REAL(sample->residual);
|
||||
printf("%2d %s %10.2f %10.2f %10.2f\n", i, time_to_log_form(when.tv_sec), slewed_offset, orig_offset, residual);
|
||||
}
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
break;
|
||||
default:
|
||||
printf("520 Got unexpected error from daemon\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2228,8 +2141,6 @@ process_cmd_manual_delete(const char *line)
|
|||
int index;
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
int submit_ok, auth_ok;
|
||||
int status;
|
||||
|
||||
if (sscanf(line, "%d", &index) != 1) {
|
||||
fprintf(stderr, "Bad syntax for manual delete command\n");
|
||||
|
@ -2240,26 +2151,7 @@ process_cmd_manual_delete(const char *line)
|
|||
request.command = htons(REQ_MANUAL_DELETE);
|
||||
request.data.manual_delete.index = htonl(index);
|
||||
|
||||
submit_ok = submit_request(&request, &reply, &auth_ok);
|
||||
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
printf("200 OK\n");
|
||||
break;
|
||||
case STT_BADSAMPLE:
|
||||
printf("516 Sample index out of range\n");
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host\n");
|
||||
break;
|
||||
default:
|
||||
printf("520 Got unexpected error from daemon\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
request_reply(&request, &reply, RPY_NULL, 1);
|
||||
}
|
||||
|
||||
/* ================================================== */
|
||||
|
@ -2271,11 +2163,9 @@ process_cmd_settime(char *line)
|
|||
time_t now, new_time;
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
int submit_ok, reply_auth_ok;
|
||||
long offset_cs;
|
||||
double dfreq_ppm, new_afreq_ppm;
|
||||
double offset;
|
||||
int status;
|
||||
|
||||
now = time(NULL);
|
||||
new_time = get_date(line, &now);
|
||||
|
@ -2287,41 +2177,13 @@ process_cmd_settime(char *line)
|
|||
ts.tv_usec = 0;
|
||||
UTI_TimevalHostToNetwork(&ts, &request.data.settime.ts);
|
||||
request.command = htons(REQ_SETTIME);
|
||||
submit_ok = submit_request(&request, &reply, &reply_auth_ok);
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
if (request_reply(&request, &reply, RPY_MANUAL_TIMESTAMP, 1)) {
|
||||
offset_cs = ntohl(reply.data.manual_timestamp.centiseconds);
|
||||
offset = 0.01 * (double) offset_cs;
|
||||
dfreq_ppm = WIRE2REAL(reply.data.manual_timestamp.dfreq_ppm);
|
||||
new_afreq_ppm = WIRE2REAL(reply.data.manual_timestamp.new_afreq_ppm);
|
||||
printf("200 OK : Clock was %.2f seconds fast. Frequency change = %.2fppm, new frequency = %.2fppm",
|
||||
offset, dfreq_ppm, new_afreq_ppm);
|
||||
break;
|
||||
case STT_FAILED:
|
||||
printf("500 Failure");
|
||||
break;
|
||||
case STT_UNAUTH:
|
||||
printf("501 Not authorised");
|
||||
break;
|
||||
case STT_INVALID:
|
||||
printf("502 Invalid command");
|
||||
break;
|
||||
case STT_NOTENABLED:
|
||||
printf("505 Facility not enabled in daemon");
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host");
|
||||
break;
|
||||
}
|
||||
if (reply_auth_ok) {
|
||||
printf("\n");
|
||||
} else {
|
||||
printf(" --- Reply not authenticated\n");
|
||||
}
|
||||
} else {
|
||||
printf("506 Could not submit settime command\n");
|
||||
printf("Clock was %.2f seconds fast. Frequency change = %.2fppm, new frequency = %.2fppm\n",
|
||||
offset, dfreq_ppm, new_afreq_ppm);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2350,14 +2212,9 @@ process_cmd_activity(const char *line)
|
|||
{
|
||||
CMD_Request request;
|
||||
CMD_Reply reply;
|
||||
int submit_ok, status, reply_auth_ok;
|
||||
request.command = htons(REQ_ACTIVITY);
|
||||
submit_ok = submit_request(&request, &reply, &reply_auth_ok);
|
||||
if (submit_ok) {
|
||||
status = ntohs(reply.status);
|
||||
switch (status) {
|
||||
case STT_SUCCESS:
|
||||
printf("200 OK\n"
|
||||
if (request_reply(&request, &reply, RPY_ACTIVITY, 1)) {
|
||||
printf(
|
||||
"%ld sources online\n"
|
||||
"%ld sources offline\n"
|
||||
"%ld sources doing burst (return to online)\n"
|
||||
|
@ -2366,16 +2223,6 @@ process_cmd_activity(const char *line)
|
|||
(long) ntohl(reply.data.activity.offline),
|
||||
(long) ntohl(reply.data.activity.burst_online),
|
||||
(long) ntohl(reply.data.activity.burst_offline));
|
||||
break;
|
||||
default:
|
||||
printf("Unexpected error returned\n");
|
||||
break;
|
||||
}
|
||||
if (!reply_auth_ok) {
|
||||
printf(" --- Reply not authenticated\n");
|
||||
}
|
||||
} else {
|
||||
printf("506 Could not submit activity command\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2389,7 +2236,6 @@ process_line(char *line)
|
|||
int do_normal_submit;
|
||||
CMD_Request tx_message;
|
||||
CMD_Reply rx_message;
|
||||
int reply_auth_ok, request_submitted_ok;
|
||||
|
||||
quit = 0;
|
||||
|
||||
|
@ -2504,67 +2350,7 @@ process_line(char *line)
|
|||
}
|
||||
|
||||
if (do_normal_submit) {
|
||||
|
||||
request_submitted_ok = submit_request(&tx_message, &rx_message, &reply_auth_ok);
|
||||
|
||||
if (request_submitted_ok) {
|
||||
switch(ntohs(rx_message.status)) {
|
||||
case STT_SUCCESS:
|
||||
printf("200 OK");
|
||||
break;
|
||||
case STT_FAILED:
|
||||
printf("500 Failure");
|
||||
break;
|
||||
case STT_UNAUTH:
|
||||
printf("501 Not authorised");
|
||||
break;
|
||||
case STT_INVALID:
|
||||
printf("502 Invalid command");
|
||||
break;
|
||||
case STT_NOSUCHSOURCE:
|
||||
printf("503 No such source");
|
||||
break;
|
||||
case STT_INVALIDTS:
|
||||
printf("504 Duplicate or stale logon detected");
|
||||
break;
|
||||
case STT_NOTENABLED:
|
||||
printf("505 Facility not enabled in daemon");
|
||||
break;
|
||||
case STT_BADSUBNET:
|
||||
printf("507 Bad subnet");
|
||||
break;
|
||||
case STT_ACCESSALLOWED:
|
||||
printf("208 Access allowed");
|
||||
break;
|
||||
case STT_ACCESSDENIED:
|
||||
printf("209 Access denied");
|
||||
break;
|
||||
case STT_NOHOSTACCESS:
|
||||
printf("510 No command access from this host");
|
||||
break;
|
||||
case STT_SOURCEALREADYKNOWN:
|
||||
printf("511 Source already present");
|
||||
break;
|
||||
case STT_TOOMANYSOURCES:
|
||||
printf("512 Too many sources present");
|
||||
break;
|
||||
case STT_NORTC:
|
||||
printf("513 RTC driver not running");
|
||||
break;
|
||||
case STT_BADRTCFILE:
|
||||
printf("514 Can't write RTC parameters");
|
||||
break;
|
||||
case STT_INVALIDAF:
|
||||
printf("515 Invalid address family");
|
||||
break;
|
||||
}
|
||||
|
||||
if (reply_auth_ok) {
|
||||
printf("\n");
|
||||
} else {
|
||||
printf(" --- Reply not authenticated\n");
|
||||
}
|
||||
}
|
||||
request_reply(&tx_message, &rx_message, RPY_NULL, 1);
|
||||
}
|
||||
fflush(stderr);
|
||||
fflush(stdout);
|
||||
|
|
Loading…
Reference in a new issue