unsigned int current_command = CMD_UNKNOWN;
unsigned int received_command = CMD_UNKNOWN;
UsbCommand current_response;
+UsbCommand current_response_user;
static int CmdHelp(const char *Cmd);
static int CmdQuit(const char *Cmd);
}
UsbCommand * WaitForResponseTimeout(uint32_t response_type, uint32_t ms_timeout) {
- UsbCommand * ret = ¤t_response;
+ UsbCommand * ret = NULL;
int i=0;
for(i=0; received_command != response_type && i < ms_timeout / 10; i++) {
msleep(10); // XXX ugh
}
+
+ // There was an evil BUG
+ memcpy(¤t_response_user, ¤t_response, sizeof(UsbCommand));
+ ret = ¤t_response_user;
if(received_command != response_type)
ret = NULL;
}
memcpy(s, UC->d.asBytes, UC->arg[0]);
s[UC->arg[0]] = '\0';
- PrintAndLog("#db# %s", s);
+ PrintAndLog("#db# %s ", s);
return;
}
case CMD_DEBUG_PRINT_INTEGERS:
- PrintAndLog("#db# %08x, %08x, %08x\r\n", UC->arg[0], UC->arg[1], UC->arg[2]);
+ PrintAndLog("#db# %08x, %08x, %08x \r\n", UC->arg[0], UC->arg[1], UC->arg[2]);
return;
case CMD_MEASURED_ANTENNA_TUNING: {
unexpected_response:
if(UC->cmd != CMD_ACK)
- PrintAndLog("unrecognized command %08x\n", UC->cmd);
+ PrintAndLog("unrecognized command %08x \n", UC->cmd);
else
memcpy(¤t_response, UC, sizeof(UsbCommand));
received_command = UC->cmd;