]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/proxmark3.c
Finishing touches on new mifare classic hack rework
[proxmark3-svn] / client / proxmark3.c
index 949013ecb975e9fd796fa062f98042a110cbae0e..a6274bc111b648ebe91b40c1066061521173803d 100644 (file)
 #include "proxgui.h"
 #include "cmdmain.h"
 #include "uart.h"
 #include "proxgui.h"
 #include "cmdmain.h"
 #include "uart.h"
-#include "messages.h"
 #include "ui.h"
 #include "ui.h"
+#include "sleep.h"
 
 static serial_port sp;
 static UsbCommand txcmd;
 
 static serial_port sp;
 static UsbCommand txcmd;
-static bool txcmd_pending = false;
+static volatile bool txcmd_pending = false;
 
 void SendCommand(UsbCommand *c) {
 #if 0
 
 void SendCommand(UsbCommand *c) {
 #if 0
@@ -144,7 +144,7 @@ static void *main_loop(void *targ) {
         nl = strrchr(script_cmd_buf, '\n');
         if (nl) *nl = '\0';
         
         nl = strrchr(script_cmd_buf, '\n');
         if (nl) *nl = '\0';
         
-        if ((cmd = (char*) malloc(strlen(script_cmd_buf))) != NULL)
+        if ((cmd = (char*) malloc(strlen(script_cmd_buf) + 1)) != NULL)
         {
           memset(cmd, 0, strlen(script_cmd_buf));
           strcpy(cmd, script_cmd_buf);
         {
           memset(cmd, 0, strlen(script_cmd_buf));
           strcpy(cmd, script_cmd_buf);
@@ -196,9 +196,11 @@ static void *main_loop(void *targ) {
 }
 
 int main(int argc, char* argv[]) {
 }
 
 int main(int argc, char* argv[]) {
+  srand(time(0));
   
   if (argc < 2) {
     printf("syntax: %s <port>\n\n",argv[0]);
   
   if (argc < 2) {
     printf("syntax: %s <port>\n\n",argv[0]);
+    printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]);
     return 1;
   }
   
     return 1;
   }
   
@@ -220,11 +222,16 @@ int main(int argc, char* argv[]) {
     offline = 0;
   }
 */
     offline = 0;
   }
 */
+  
   sp = uart_open(argv[1]);
   if (sp == INVALID_SERIAL_PORT) {
     printf("ERROR: invalid serial port\n");
     marg.usb_present = 0;
     offline = 1;
   sp = uart_open(argv[1]);
   if (sp == INVALID_SERIAL_PORT) {
     printf("ERROR: invalid serial port\n");
     marg.usb_present = 0;
     offline = 1;
+  } else if (sp == CLAIMED_SERIAL_PORT) {
+    printf("ERROR: serial port is claimed by another process\n");
+    marg.usb_present = 0;
+    offline = 1;
   } else {
     marg.usb_present = 1;
     offline = 0;
   } else {
     marg.usb_present = 1;
     offline = 0;
Impressum, Datenschutz