Add the new Linux "cli" command line client, thanks for the contribution!

This commit is contained in:
edouard@lafargue.name 2009-06-26 10:20:55 +00:00
parent 7fdbe272cf
commit db917a164f
2 changed files with 65 additions and 2 deletions

@ -13,17 +13,19 @@ else
QTGUI = guidummy.o
endif
all: proxmark3 snooper
all: proxmark3 snooper cli
proxmark3: LDFLAGS+=$(QTLDFLAGS)
proxmark3: proxmark3.o gui.o command.o usb.o $(QTGUI)
snooper: snooper.o gui.o command.o usb.o guidummy.o
cli: cli.o gui.o command.o usb.o guidummy.o
proxguiqt.moc.cpp: proxguiqt.h
$(MOC) -o$@ $^
clean:
rm -f proxmark3 snooper *.o *.moc.cpp
rm -f cli proxmark3 snooper *.o *.moc.cpp
.PHONY: all clean

61
linux/cli.c Normal file

@ -0,0 +1,61 @@
#include <usb.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <strings.h>
#include <string.h>
#include <errno.h>
#include "translate.h"
#include "../winsrc/prox.h"
#include "proxmark3.h"
#define HANDLE_ERROR if (error_occured) { \
error_occured = 0;\
break;\
}
int main(int argc, char **argv)
{
if(argc != 3 && argc != 4)
{
printf("\n\tusage: cli <command 1> <command 2> [logfile (default cli.log)]\n");
printf("\n");
printf("\texample: cli hi14asnoop hi14alist h14a.log\n");
printf("\n");
return -1;
}
usb_init();
if (argc == 4)
setlogfilename(argv[3]);
else
setlogfilename("cli.log");
return_on_error = 1;
while(1) {
while(!(devh=OpenProxmark(0))) { sleep(1); }
while(1) {
UsbCommand cmdbuf;
int i;
CommandReceived(argv[1]);
HANDLE_ERROR
ReceiveCommand(&cmdbuf);
HANDLE_ERROR
for (i=0; i<5; i++) {
ReceiveCommandP(&cmdbuf);
}
HANDLE_ERROR
CommandReceived(argv[2]);
HANDLE_ERROR
}
}
CloseProxmark();
return 0;
}