Files
aaruremote/main.c

98 lines
3.6 KiB
C
Raw Normal View History

2019-10-12 13:06:21 +01:00
/*
* This file is part of the DiscImageChef Remote Server.
* Copyright (c) 2019 Natalia Portillo.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "dicmote.h"
#include <stdio.h>
2019-10-12 18:40:49 +01:00
#include <stdlib.h>
2019-10-12 23:52:48 +01:00
2019-10-12 13:06:21 +01:00
int main()
{
2019-10-19 18:30:45 +01:00
AtaErrorRegistersChs ata_chs_error_regs;
AtaErrorRegistersLba28 ata_lba28_error_regs;
AtaErrorRegistersLba48 ata_lba48_error_regs;
2019-10-18 00:25:45 +01:00
char device_path[1024];
char* buffer;
char* cdb_buf;
char* cid;
2019-10-19 18:30:45 +01:00
char* csd;
char* in_buf;
2019-10-18 00:25:45 +01:00
char* ocr;
2019-10-19 18:30:45 +01:00
char* out_buf;
2019-10-18 00:25:45 +01:00
char* scr;
2019-10-19 18:30:45 +01:00
char* sense_buf;
2019-10-19 02:42:47 +01:00
DicPacketCmdAtaChs* pkt_cmd_ata_chs;
DicPacketCmdAtaLba28* pkt_cmd_ata_lba28;
DicPacketCmdAtaLba48* pkt_cmd_ata_lba48;
2019-10-19 18:30:45 +01:00
DicPacketCmdOpen* pkt_dev_open;
DicPacketCmdScsi* pkt_cmd_scsi;
DicPacketCmdSdhci* pkt_cmd_sdhci;
DicPacketHeader* pkt_hdr;
DicPacketHello* pkt_server_hello;
DicPacketHello* pkt_client_hello;
DicPacketNop* pkt_nop;
2019-10-19 02:42:47 +01:00
DicPacketResAtaChs* pkt_res_ata_chs;
DicPacketResAtaLba28* pkt_res_ata_lba28;
DicPacketResAtaLba48* pkt_res_ata_lba48;
2019-10-19 18:30:45 +01:00
DicPacketResGetDeviceType* pkt_dev_type;
DicPacketResGetFireWireData* pkt_res_firewire;
DicPacketResGetPcmciaData* pkt_res_pcmcia;
DicPacketResGetSdhciRegisters* pkt_res_sdhci_registers;
DicPacketResGetUsbData* pkt_res_usb;
DicPacketResListDevs* pkt_res_devinfo;
DicPacketResScsi* pkt_res_scsi;
2019-10-19 17:56:54 +01:00
DicPacketResSdhci* pkt_res_sdhci;
2019-10-19 18:30:45 +01:00
int device_fd = -1;
int skip_next_hdr;
int cli_sock, sock_fd;
int ret;
socklen_t cli_len;
ssize_t recv_size;
struct DeviceInfoList* device_info_list;
struct sockaddr_in cli_addr, serv_addr;
uint32_t duration;
2019-10-19 17:56:54 +01:00
uint32_t sdhci_response[4];
2019-10-19 18:30:45 +01:00
uint32_t sense;
uint32_t sense_len;
uint64_t n;
2019-10-12 13:31:54 +01:00
2019-10-20 21:50:25 +01:00
Initialize();
2019-10-12 13:06:21 +01:00
printf("DiscImageChef Remote Server %s\n", DICMOTE_VERSION);
printf("Copyright (C) 2019 Natalia Portillo\n");
pkt_server_hello = GetHello();
2019-10-12 17:28:09 +01:00
if(!pkt_server_hello)
2019-10-12 17:28:09 +01:00
{
printf("Error %d getting system version.\n", errno);
return 1;
}
printf(
"Running under %s %s (%s).\n", pkt_server_hello->sysname, pkt_server_hello->release, pkt_server_hello->machine);
2019-10-12 17:28:09 +01:00
2019-10-20 21:38:14 +01:00
ret = PrintNetworkAddresses();
if(ret)
{
printf("Error %d enumerating interfaces\n", errno);
return 1;
}
2019-10-20 21:50:25 +01:00
PlatformLoop(pkt_server_hello);
2019-10-12 13:06:21 +01:00
}