int main(int argc, char **argv) { int ch; char *ifname = "eth1"; while((ch = getopt(argc, argv, "di:l")) != -1) { switch(ch) { case 'i': ifname = optarg; break; case 'd': debuglevel++; break; case 'l': loop_mode++; break; case '?': default: usage(); } } if(loop_mode) { print_reply(ifname, 5); while(1) { char buf[256]; if(fgets(buf, sizeof(buf), stdin) == NULL) break; send_command(ifname, buf); print_reply(ifname, 10); } } else { print_reply(ifname, 5); send_command(ifname, argv[optind]); print_reply(ifname, 10); printf("\n"); } return 0; }
int main(int argc, char* argv[]) { int data_sock, retcode, s; char buffer[MAXSIZE]; struct command cmd; struct addrinfo hints, *res, *rp; if (argc != 3) { printf("usage: ./ftclient hostname port\n"); exit(0); } char *host = argv[1]; char *port = argv[2]; /* Get matching addresses */ memset(&hints, 0, sizeof(struct addrinfo)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; s = getaddrinfo(host, port, &hints, &res); if (s != 0) { printf("getaddrinfo() error %s", gai_strerror(s)); exit(1); } /* Find an address to connect to & connect */ for (rp = res; rp != NULL; rp = rp->ai_next) { sock_control = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol); if (sock_control < 0) continue; if(connect(sock_control, res->ai_addr, res->ai_addrlen)==0) { break; } else { perror("connecting stream socket"); exit(1); } close(sock_control); } freeaddrinfo(rp); /* Get connection, welcome messages */ printf("Connected to %s.\n", host); print_reply(read_reply()); /* Get name and password and send to server */ ftclient_login(); while (1) { /* loop until user types quit */ // Get a command from user if ( ftclient_read_command(buffer, sizeof buffer, &cmd) < 0) { printf("Invalid command\n"); continue; // loop back for another command } // Send command to server if (send(sock_control, buffer, (int)strlen(buffer), 0) < 0 ) { close(sock_control); exit(1); } retcode = read_reply(); if (retcode == 221) { /* If command was quit, just exit */ print_reply(221); break; } if (retcode == 502) { /* If invalid command, show error message */ printf("%d Invalid command.\n", retcode); } else { /* Command is valid (RC = 200), process command */ /* open data connection */ if ((data_sock = ftclient_open_conn(sock_control)) < 0){ perror("Error opening socket for data connection"); exit(1); } // execute command if (strcmp(cmd.code, "LIST") == 0) { ftclient_list(data_sock, sock_control); } else if (strcmp(cmd.code, "RETR") == 0) { // wait for reply (is file valid) if (read_reply() == 550) { print_reply(550); close(data_sock); continue; } ftclient_get(data_sock, sock_control, cmd.arg); print_reply(read_reply()); } close(data_sock); } } // loop back to get more user input /* Close the socket (control connection) */ close(sock_control); return 0; }
int main(int argc, char **argv) { daemon_reply reply; char *cmd; char *uuid; char *name; int val; int ver; if (argc < 2) { printf("lvmetactl dump\n"); printf("lvmetactl pv_list\n"); printf("lvmetactl vg_list\n"); printf("lvmetactl vg_lookup_name <name>\n"); printf("lvmetactl vg_lookup_uuid <uuid>\n"); printf("lvmetactl pv_lookup_uuid <uuid>\n"); printf("lvmetactl set_global_invalid 0|1\n"); printf("lvmetactl get_global_invalid\n"); printf("lvmetactl set_vg_version <uuid> <name> <version>\n"); printf("lvmetactl vg_lock_type <uuid>\n"); return -1; } cmd = argv[1]; h = lvmetad_open(NULL); if (!strcmp(cmd, "dump")) { reply = daemon_send_simple(h, "dump", "token = %s", "skip", NULL); printf("%s\n", reply.buffer.mem); } else if (!strcmp(cmd, "pv_list")) { reply = daemon_send_simple(h, "pv_list", "token = %s", "skip", NULL); printf("%s\n", reply.buffer.mem); } else if (!strcmp(cmd, "vg_list")) { reply = daemon_send_simple(h, "vg_list", "token = %s", "skip", NULL); printf("%s\n", reply.buffer.mem); } else if (!strcmp(cmd, "set_global_invalid")) { if (argc < 3) { printf("set_global_invalid 0|1\n"); return -1; } val = atoi(argv[2]); reply = daemon_send_simple(h, "set_global_info", "global_invalid = %d", val, "token = %s", "skip", NULL); print_reply(reply); } else if (!strcmp(cmd, "get_global_invalid")) { reply = daemon_send_simple(h, "get_global_info", "token = %s", "skip", NULL); printf("%s\n", reply.buffer.mem); } else if (!strcmp(cmd, "set_vg_version")) { if (argc < 5) { printf("set_vg_version <uuid> <name> <ver>\n"); return -1; } uuid = argv[2]; name = argv[3]; ver = atoi(argv[4]); if ((strlen(uuid) == 1) && (uuid[0] == '-')) uuid = NULL; if ((strlen(name) == 1) && (name[0] == '-')) name = NULL; if (uuid && name) { reply = daemon_send_simple(h, "set_vg_info", "uuid = %s", uuid, "name = %s", name, "version = %d", ver, "token = %s", "skip", NULL); } else if (uuid) { reply = daemon_send_simple(h, "set_vg_info", "uuid = %s", uuid, "version = %d", ver, "token = %s", "skip", NULL); } else if (name) { reply = daemon_send_simple(h, "set_vg_info", "name = %s", name, "version = %d", ver, "token = %s", "skip", NULL); } else { printf("name or uuid required\n"); return -1; } print_reply(reply); } else if (!strcmp(cmd, "vg_lookup_name")) { if (argc < 3) { printf("vg_lookup_name <name>\n"); return -1; } name = argv[2]; reply = daemon_send_simple(h, "vg_lookup", "name = %s", name, "token = %s", "skip", NULL); printf("%s\n", reply.buffer.mem); } else if (!strcmp(cmd, "vg_lookup_uuid")) { if (argc < 3) { printf("vg_lookup_uuid <uuid>\n"); return -1; } uuid = argv[2]; reply = daemon_send_simple(h, "vg_lookup", "uuid = %s", uuid, "token = %s", "skip", NULL); printf("%s\n", reply.buffer.mem); } else if (!strcmp(cmd, "vg_lock_type")) { struct dm_config_node *metadata; const char *lock_type; if (argc < 3) { printf("vg_lock_type <uuid>\n"); return -1; } uuid = argv[2]; reply = daemon_send_simple(h, "vg_lookup", "uuid = %s", uuid, "token = %s", "skip", NULL); /* printf("%s\n", reply.buffer.mem); */ metadata = dm_config_find_node(reply.cft->root, "metadata"); if (!metadata) { printf("no metadata\n"); goto out; } lock_type = dm_config_find_str(metadata, "metadata/lock_type", NULL); if (!lock_type) { printf("no lock_type\n"); goto out; } printf("lock_type %s\n", lock_type); } else if (!strcmp(cmd, "pv_lookup_uuid")) { if (argc < 3) { printf("pv_lookup_uuid <uuid>\n"); return -1; } uuid = argv[2]; reply = daemon_send_simple(h, "pv_lookup", "uuid = %s", uuid, "token = %s", "skip", NULL); printf("%s\n", reply.buffer.mem); } else { printf("unknown command\n"); goto out_close; } out: daemon_reply_destroy(reply); out_close: daemon_close(h); return 0; }
int main(int argc, char **argv) { char *device_name = NULL; int c, ret; unsigned char reply[sizeof(struct sg_header) + MAX_REPLY_LEN]; int cmd = kDeviceCmdInquiry, val = -1; while ((c = getopt (argc, argv, "hc:v:")) != -1) switch (c) { case 'h': print_help(); return 0; case 'c': if(strcmp(optarg, "inquiry") == 0) cmd = kDeviceCmdInquiry; else if(strcmp(optarg, "lock") == 0) cmd = kDeviceCmdLockDevice; else if(strcmp(optarg, "unlock") == 0) cmd = kDeviceCmdUnlockDevice; else if(strcmp(optarg, "disconnect") == 0) cmd = kDeviceCmdDisconnectOk; else if(strcmp(optarg, "get") == 0) cmd = kDeviceCmdGetSetting; else if(strcmp(optarg, "undefined") == 0) cmd = kDeviceCmdUndefined; else { printf("Invalid command %s\n", optarg); return 1; } break; case 'v': if(strcmp(optarg, "battery") == 0) val = kSettingBatteryLevel; else if(strcmp(optarg, "rtc") == 0) val = kSettingRTCCounter; else if(strcmp(optarg, "serial") == 0) val = kSettingSerialNumber; else if(strcmp(optarg, "undefined") == 0) val = kSettingUndefined; else { printf("Invalid value %s\n", optarg); return 1; } break; case '?': default: print_help(); return 1; } if(optind != argc - 1) { printf("No scsi device specified\n"); return 1; } device_name = argv[optind]; if(cmd == kDeviceCmdGetSetting && val == -1) { printf("Must get command requires -v option.\n"); return 1; } fd = open(device_name, O_RDWR); if(fd == -1) { perror("Failed to open scsi device."); return 1; } /* print some fields of the inquiry result */ ret = send_cmd(cmd, val, reply); if(ret) { printf("Failed to send cmd 0x%x\n", cmd); return 1; } print_reply(cmd, val, reply); close(fd); return 0; }
static gboolean validate_stuff (const gchar *path) { GDBusProxy *session; GError *error = NULL; g_print ("entering validate_stuff for %s\n", path); session = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, NULL, DBUS_NAME, path, DBUS_SESSION_INTERFACE, NULL, &error); if (session == NULL || error != NULL) { if (error != NULL) { g_printerr ("Error creating session proxy: %s\n", error->message); g_clear_error (&error); } return FALSE; } print_proxy_info (session); print_reply (session, "GetId"); print_reply (session, "GetSeatId"); print_reply (session, "GetSessionType"); print_reply (session, "GetUser"); print_reply (session, "GetUnixUser"); print_reply (session, "GetX11Display"); print_reply (session, "GetX11DisplayDevice"); print_reply (session, "GetDisplayDevice"); print_reply (session, "GetRemoteHostName"); print_reply (session, "GetLoginSessionId"); print_reply (session, "IsActive"); print_reply (session, "IsLocal"); print_reply (session, "GetCreationTime"); print_reply (session, "GetIdleHint"); print_reply (session, "GetIdleSinceHint"); g_print ("done printing stuff for %s\n\n", path); g_object_unref (session); return TRUE; }