int main(int argc, char **argv) { long timeout; char host[MAX_DB_HOST_NAMELEN]; int port; char user[MAX_USER_PASSWD_LEN]; char pass[MAX_USER_PASSWD_LEN]; int process_count; int *process_list = NULL; int ch; int optindex; static struct option long_options[] = { {"debug", no_argument, NULL, 'd'}, {"help", no_argument, NULL, 'h'}, {NULL, 0, NULL, 0} }; while ((ch = getopt_long(argc, argv, "hd", long_options, &optindex)) != -1) { switch (ch) { case 'd': pcp_enable_debug(); break; case 'h': case '?': default: usage(); exit(0); } } argc -= optind; argv += optind; if (argc != 5) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } timeout = atol(argv[0]); if (timeout < 0) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } if (strlen(argv[1]) >= MAX_DB_HOST_NAMELEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(host, argv[1]); port = atoi(argv[2]); if (port <= 1024 || port > 65535) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } if (strlen(argv[3]) >= MAX_USER_PASSWD_LEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(user, argv[3]); if (strlen(argv[4]) >= MAX_USER_PASSWD_LEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(pass, argv[4]); pcp_set_timeout(timeout); if (pcp_connect(host, port, user, pass)) { pcp_errorstr(errorcode); myexit(errorcode); } if ((process_list = pcp_process_count(&process_count)) == NULL) { pcp_errorstr(errorcode); pcp_disconnect(); myexit(errorcode); } else { int i; for (i = 0; i < process_count; i++) printf("%d ", process_list[i]); printf("\n"); free(process_list); } pcp_disconnect(); return 0; }
int main(int argc, char **argv) { long timeout; char host[MAX_DB_HOST_NAMELEN]; int port; char user[MAX_USER_PASSWD_LEN]; char pass[MAX_USER_PASSWD_LEN]; int nodeID; int ch; int optindex; static struct option long_options[] = { {"debug", no_argument, NULL, 'd'}, {"help", no_argument, NULL, 'h'}, {NULL, 0, NULL, 0} }; while ((ch = getopt_long(argc, argv, "hd", long_options, &optindex)) != -1) { switch (ch) { case 'd': pcp_enable_debug(); break; case 'h': case '?': default: usage(); exit(0); } } argc -= optind; argv += optind; if (argc != 6) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } timeout = atol(argv[0]); if (timeout < 0) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } if (strlen(argv[1]) >= MAX_DB_HOST_NAMELEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(host, argv[1]); port = atoi(argv[2]); if (port <= 1024 || port > 65535) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } if (strlen(argv[3]) >= MAX_USER_PASSWD_LEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(user, argv[3]); if (strlen(argv[4]) >= MAX_USER_PASSWD_LEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(pass, argv[4]); nodeID = atoi(argv[5]); if (nodeID < 0 || nodeID > MAX_NUM_BACKENDS) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } pcp_set_timeout(timeout); if (pcp_connect(host, port, user, pass)) { pcp_errorstr(errorcode); myexit(errorcode); } if (pcp_attach_node(nodeID)) { pcp_errorstr(errorcode); pcp_disconnect(); myexit(errorcode); } pcp_disconnect(); return 0; }
int main(int argc, char **argv) { long timeout; char host[MAX_DB_HOST_NAMELEN]; int port; char user[MAX_USER_PASSWD_LEN]; char pass[MAX_USER_PASSWD_LEN]; int processID; ProcessInfo *process_info; int array_size; int ch; int optindex; char * frmt; bool verbose = false; bool all = false; static struct option long_options[] = { {"debug", no_argument, NULL, 'd'}, {"help", no_argument, NULL, 'h'}, {"verbose", no_argument, NULL, 'v'}, {NULL, 0, NULL, 0} }; while ((ch = getopt_long(argc, argv, "hdva", long_options, &optindex)) != -1) { switch (ch) { case 'd': pcp_enable_debug(); break; case 'v': verbose = true; break; case 'a': all = true; break; case 'h': case '?': default: usage(); exit(0); } } argc -= optind; argv += optind; if (verbose) { if (all) frmt = "Database : %s\n" "Username : %s\n" "Start time : %s\n" "Creation time: %s\n" "Major : %d\n" "Minor : %d\n" "Counter : %d\n" "Backend PID : %d\n" "Connected : %d\n" "PID : %d\n" "Backend ID : %d\n"; else frmt = "Database : %s\n" "Username : %s\n" "Start time : %s\n" "Creation time: %s\n" "Major : %d\n" "Minor : %d\n" "Counter : %d\n" "Backend PID : %d\n" "Connected : %d\n"; } else { if (all) frmt = "%s %s %s %s %d %d %d %d %d %d %d\n"; else frmt = "%s %s %s %s %d %d %d %d %d\n"; } if (!(argc == 5 || argc == 6)) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } timeout = atol(argv[0]); if (timeout < 0) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } if (strlen(argv[1]) >= MAX_DB_HOST_NAMELEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(host, argv[1]); port = atoi(argv[2]); if (port <= 1024 || port > 65535) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } if (strlen(argv[3]) >= MAX_USER_PASSWD_LEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(user, argv[3]); if (strlen(argv[4]) >= MAX_USER_PASSWD_LEN) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } strcpy(pass, argv[4]); if (argc == 6) { processID = atoi(argv[5]); if (processID < 0) { errorcode = INVALERR; pcp_errorstr(errorcode); myexit(errorcode); } } else { processID = 0; } pcp_set_timeout(timeout); if (pcp_connect(host, port, user, pass)) { pcp_errorstr(errorcode); myexit(errorcode); } if ((process_info = pcp_process_info(processID, &array_size)) == NULL) { pcp_errorstr(errorcode); pcp_disconnect(); myexit(errorcode); } else { int i; char strcreatetime[128]; char strstarttime[128]; for (i = 0; i < array_size; i++) { if ((!all) && (process_info[i].connection_info->database[0] == '\0')) continue; *strcreatetime = *strstarttime = '\0'; if (process_info[i].start_time) strftime(strstarttime, 128, "%Y-%m-%d %H:%M:%S", localtime(&process_info[i].start_time)); if (process_info[i].connection_info->create_time) strftime(strcreatetime, 128, "%Y-%m-%d %H:%M:%S", localtime(&process_info[i].connection_info->create_time)); printf(frmt, process_info[i].connection_info->database, process_info[i].connection_info->user, strstarttime, strcreatetime, process_info[i].connection_info->major, process_info[i].connection_info->minor, process_info[i].connection_info->counter, process_info[i].connection_info->pid, process_info[i].connection_info->connected, process_info[i].pid, process_info[i].connection_info->backend_id); } free(process_info->connection_info); free(process_info); } pcp_disconnect(); return 0; }