0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #include <string.h>
0035 #include <stdio.h>
0036 #include <stdlib.h>
0037 #include <memory.h>
0038 #include <sys/param.h>
0039
0040 #include <ndrstandard.h>
0041 #include <ndebug.h>
0042 #include <nstdutil.h>
0043
0044 #include <ndrxdcmn.h>
0045 #include <atmi_int.h>
0046 #include <gencall.h>
0047 #include <utlist.h>
0048 #include <Exfields.h>
0049
0050 #include "xa_cmn.h"
0051 #include "nclopt.h"
0052 #include <ndrx.h>
0053 #include <qcommon.h>
0054 #include <atmi_cache.h>
0055 #include <ubfutil.h>
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072 expublic int cmd_dsleep(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next)
0073 {
0074 int ret = EXSUCCEED;
0075 command_dsleep_t call;
0076
0077 memset(&call, 0, sizeof(call));
0078
0079 call.secs = atoi(argv[1]);
0080
0081 ret=cmd_generic_listcall(p_cmd_map->ndrxd_cmd, NDRXD_SRC_ADMIN,
0082 NDRXD_CALL_TYPE_DSLEEP,
0083 (command_call_t *)&call, sizeof(call),
0084 G_config.reply_queue_str,
0085 G_config.reply_queue,
0086 G_config.ndrxd_q,
0087 G_config.ndrxd_q_str,
0088 argc, argv,
0089 p_have_next,
0090 G_call_args,
0091 EXFALSE,
0092 G_config.listcall_flags);
0093
0094 out:
0095 return ret;
0096 }
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106 expublic int cmd_dpid(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next)
0107 {
0108 pid_t pid;
0109 int ret = EXSUCCEED;
0110
0111 if (EXFAIL==(pid = ndrx_ndrxd_pid_get()))
0112 {
0113 EXFAIL_OUT(ret);
0114 }
0115
0116 fprintf(stdout, "%d\n", pid);
0117
0118 out:
0119 return ret;
0120
0121 }
0122
0123
0124
0125
0126
0127
0128
0129 expublic int cmd_dping(cmd_mapping_t *p_cmd_map, int argc, char **argv, int *p_have_next)
0130 {
0131 int ret=EXSUCCEED;
0132 long loops = 4;
0133 long i;
0134 int seq;
0135 long tim;
0136
0137 ncloptmap_t clopt[] =
0138 {
0139 {'c', BFLD_LONG, (void *)&loops, sizeof(loops),
0140 NCLOPT_OPT|NCLOPT_HAVE_VALUE, "Count of pings, default 4"},
0141 {0}
0142 };
0143
0144
0145 if (nstd_parse_clopt(clopt, EXTRUE, argc, argv, EXFALSE))
0146 {
0147 fprintf(stderr, XADMIN_INVALID_OPTIONS_MSG);
0148 EXFAIL_OUT(ret);
0149 }
0150
0151
0152 if (EXSUCCEED!=tpinit(NULL))
0153 {
0154 fprintf(stderr, "Failed to tpinit(): %s\n", tpstrerror(tperrno));
0155 EXFAIL_OUT(ret);
0156 }
0157
0158 for (i=0; i<loops; i++)
0159 {
0160 if (EXSUCCEED!=ndrx_ndrxd_ping(&seq, &tim, G_config.reply_queue,
0161 G_config.reply_queue_str))
0162 {
0163 fprintf(stdout, "loop %ld: ndrxd_ping_seq=%d: timeout or system error\n",
0164 i, seq);
0165 }
0166 else
0167 {
0168 fprintf(stdout, "loop %ld: ndrxd_ping_seq=%d time=%ld ms\n", i, seq, tim);
0169 }
0170
0171 sleep(1);
0172 }
0173
0174 out:
0175 return ret;
0176 }
0177
0178