mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
style
This commit is contained in:
parent
cb8bb8d520
commit
2597c7576e
50 changed files with 135 additions and 99 deletions
|
@ -452,6 +452,7 @@ endif
|
|||
ifeq ($(SWIG_LUA_FOUND),1)
|
||||
PM3CFLAGS += -DHAVE_LUA_SWIG
|
||||
endif
|
||||
|
||||
ifeq ($(SWIG_PYTHON_FOUND),1)
|
||||
PM3CFLAGS += -DHAVE_PYTHON_SWIG
|
||||
endif
|
||||
|
@ -594,6 +595,7 @@ endif
|
|||
ifeq ($(SWIG_LUA_FOUND),1)
|
||||
$(info Lua SWIG: wrapper found)
|
||||
endif
|
||||
|
||||
ifeq ($(SWIG_PYTHON_FOUND),1)
|
||||
$(info Python SWIG: wrapper found)
|
||||
endif
|
||||
|
|
|
@ -2542,7 +2542,7 @@ FAB943906E9C
|
|||
# R.A.T.T transport card key A/B
|
||||
AA034F342A55
|
||||
456776908C48
|
||||
|
||||
#
|
||||
# BusFacil - Brazilian public transport card for some cities
|
||||
fae9b14365a9
|
||||
c567dd4a6004
|
||||
|
|
|
@ -3073,7 +3073,7 @@ plot:
|
|||
}
|
||||
}
|
||||
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
|
||||
if (verbose && found == false) {
|
||||
PrintAndLogEx(FAILED, "no ISO 14443-B tag found");
|
||||
|
|
|
@ -232,8 +232,7 @@ int readHFCryptoRF(bool loop, bool verbose) {
|
|||
PrintAndLogEx(SUCCESS, " UID: " _GREEN_("%s"), sprint_hex_inrow(card.uid, card.uidlen));
|
||||
set_last_known_card(card);
|
||||
}
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
DropField();
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -348,7 +348,7 @@ int read_felica_uid(bool loop, bool verbose) {
|
|||
res = PM3_SUCCESS;
|
||||
}
|
||||
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
|
||||
DropField();
|
||||
return res;
|
||||
|
|
|
@ -199,7 +199,7 @@ int read_fudan_uid(bool loop, bool verbose) {
|
|||
PrintAndLogEx(NORMAL, "");
|
||||
}
|
||||
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
|
||||
|
||||
return PM3_SUCCESS;
|
||||
|
|
|
@ -438,7 +438,7 @@ int reader_lto(bool loop, bool verbose) {
|
|||
PrintAndLogEx(INFO, "UID......... " _GREEN_("%s"), sprint_hex_inrow(serial, sizeof(serial)));
|
||||
}
|
||||
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
|
||||
lto_switch_off_field();
|
||||
return ret;
|
||||
|
|
|
@ -623,7 +623,7 @@ int read_texkom_uid(bool loop, bool verbose) {
|
|||
}
|
||||
}
|
||||
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ static int topaz_select(uint8_t *atqa, uint8_t atqa_len, uint8_t *rid_response,
|
|||
}
|
||||
|
||||
// read all of the static memory of a selected Topaz tag.
|
||||
static int topaz_rall(uint8_t *uid, uint8_t *response) {
|
||||
static int topaz_rall(const uint8_t *uid, uint8_t *response) {
|
||||
|
||||
uint16_t resp_len = 124;
|
||||
uint8_t rall_cmd[] = {TOPAZ_RALL, 0, 0, 0, 0, 0, 0, 0, 0};
|
||||
|
@ -1180,7 +1180,7 @@ int readTopazUid(bool loop, bool verbose) {
|
|||
topaz_tag.HR01[0] = rid_response[0];
|
||||
topaz_tag.HR01[1] = rid_response[1];
|
||||
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
|
||||
topaz_switch_off_field();
|
||||
return res;
|
||||
|
|
|
@ -593,7 +593,7 @@ int read_xerox_uid(bool loop, bool verbose) {
|
|||
return PM3_ESOFT;
|
||||
}
|
||||
|
||||
} while (loop && kbd_enter_pressed() == false);
|
||||
} while (loop && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -129,7 +129,7 @@ static int CmdDestronReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 16000);
|
||||
demodDestron(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -692,7 +692,7 @@ static int CmdFdxBReader(const char *Cmd) {
|
|||
lf_read(false, 10000);
|
||||
ret = demodFDXB(!cm); // be verbose only if not in continuous mode
|
||||
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
|
||||
if (old_div != curr_div) {
|
||||
|
|
|
@ -132,7 +132,7 @@ static int CmdGallagherReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 4096 * 2 + 20);
|
||||
demodGallagher(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -968,7 +968,7 @@ static int CmdLFHitagSReader(const char *Cmd) {
|
|||
if (hts_get_uid(&uid)) {
|
||||
PrintAndLogEx(SUCCESS, "UID.... " _GREEN_("%08X"), uid);
|
||||
}
|
||||
} while (cm && kbd_enter_pressed() == false);
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -315,7 +315,7 @@ static int CmdIdteckReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 5000);
|
||||
demodIdteck(NULL, !cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -632,7 +632,7 @@ static int CmdIndalaReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 30000);
|
||||
demodIndalaEx(clk, invert, max_err, !cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm & (kbd_enter_pressed() == false));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -202,7 +202,7 @@ static int CmdIOProxReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 12000);
|
||||
demodIOProx(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -152,7 +152,7 @@ static int CmdJablotronReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 16000);
|
||||
demodJablotron(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -221,7 +221,7 @@ static int CmdKeriReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 10000);
|
||||
demodKeri(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -179,7 +179,7 @@ static int CmdMotorolaReader(const char *Cmd) {
|
|||
// 64 * 32 * 2 * n-ish
|
||||
lf_read(false, 5000);
|
||||
res = demodMotorola(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
// reset back to 125 kHz
|
||||
sc.divisor = LF_DIVISOR_125;
|
||||
|
|
|
@ -296,7 +296,7 @@ static int CmdLFNedapReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 16000);
|
||||
demodNedap(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -287,7 +287,7 @@ static int CmdNexWatchReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 20000);
|
||||
demodNexWatch(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -150,7 +150,7 @@ static int CmdNoralsyReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 8000);
|
||||
demodNoralsy(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -214,7 +214,7 @@ static int CmdPacReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 4096 * 2 + 20);
|
||||
demodPac(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -285,7 +285,7 @@ static int CmdParadoxReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 10000);
|
||||
demodParadox(!cm, old);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -84,7 +84,7 @@ static int CmdLFPCF7931Reader(const char *Cmd) {
|
|||
PrintAndLogEx(WARNING, "command execution time out");
|
||||
return PM3_ETIMEOUT;
|
||||
}
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -160,7 +160,7 @@ static int CmdPrescoReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 12000);
|
||||
demodPresco(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -231,7 +231,7 @@ static int CmdPyramidReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 15000);
|
||||
demodPyramid(true);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -161,7 +161,7 @@ static int CmdSecurakeyReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 8000);
|
||||
demodSecurakey(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -325,7 +325,7 @@ static int CmdTIReader(const char *Cmd) {
|
|||
do {
|
||||
clearCommandBuffer();
|
||||
SendCommandNG(CMD_LF_TI_READ, NULL, 0);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ static int CmdVikingReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 10000);
|
||||
demodViking(true);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -185,7 +185,7 @@ static int CmdVisa2kReader(const char *Cmd) {
|
|||
do {
|
||||
lf_read(false, 20000);
|
||||
demodVisa2k(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@ static int CmdzxReader(const char *Cmd) {
|
|||
do {
|
||||
lf_Zx_read();
|
||||
demodzx(!cm);
|
||||
} while (cm && !kbd_enter_pressed());
|
||||
} while (cm && (kbd_enter_pressed() == false));
|
||||
return PM3_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,12 +30,17 @@
|
|||
#include "util_posix.h" // time
|
||||
#include "fileutils.h"
|
||||
|
||||
|
||||
#define MQTT_BUFFER_SIZE ( 1 << 16 )
|
||||
|
||||
static int CmdHelp(const char *Cmd);
|
||||
|
||||
static void mqtt_publish_callback(void **unused, struct mqtt_response_publish *published) {
|
||||
|
||||
if (published == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// note that published->topic_name is NOT null-terminated (here we'll change it to a c-string)
|
||||
char *topic_name = (char *) calloc(published->topic_name_size + 1, 1);
|
||||
memcpy(topic_name, published->topic_name, published->topic_name_size);
|
||||
|
|
|
@ -1469,7 +1469,7 @@ static int CmdPCSC(const char *Cmd) {
|
|||
msleep(300);
|
||||
}
|
||||
|
||||
} while (!kbd_enter_pressed());
|
||||
} while (kbd_enter_pressed() == false);
|
||||
|
||||
mbedtls_net_close(&netCtx);
|
||||
mbedtls_net_free(&netCtx);
|
||||
|
|
|
@ -89,6 +89,8 @@ DumpFileType_t get_filetype(const char *filename) {
|
|||
o = FLIPPER;
|
||||
} else if (str_endswith(s, "picopass")) {
|
||||
o = FLIPPER;
|
||||
} else if (str_endswith(s, "xml")) {
|
||||
o = TAGINFO;
|
||||
} else {
|
||||
// mfd, trc, trace is binary
|
||||
o = BIN;
|
||||
|
@ -3323,6 +3325,10 @@ int pm3_load_dump(const char *fn, void **pdump, size_t *dumplen, size_t maxdumpl
|
|||
}
|
||||
break;
|
||||
}
|
||||
case TAGINFO: {
|
||||
//res = loadFileXML_safe(fn, ".xml", pdump, dumplen);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -83,6 +83,7 @@ typedef enum {
|
|||
DICTIONARY,
|
||||
MCT,
|
||||
FLIPPER,
|
||||
TAGINFO,
|
||||
} DumpFileType_t;
|
||||
|
||||
typedef enum {
|
||||
|
|
|
@ -39,32 +39,37 @@
|
|||
#endif
|
||||
|
||||
bool uart_bind(void *socket, const char *bindAddrStr, const char *bindPortStr, bool isBindingIPv6) {
|
||||
if (bindAddrStr == NULL && bindPortStr == NULL)
|
||||
if (bindAddrStr == NULL && bindPortStr == NULL) {
|
||||
return true; // no need to bind
|
||||
}
|
||||
|
||||
struct sockaddr_storage bindSockaddr;
|
||||
memset(&bindSockaddr, 0, sizeof(bindSockaddr));
|
||||
int bindPort = 0; // 0: port unspecified
|
||||
if (bindPortStr != NULL)
|
||||
if (bindPortStr != NULL) {
|
||||
bindPort = atoi(bindPortStr);
|
||||
}
|
||||
|
||||
if (!isBindingIPv6) {
|
||||
if (isBindingIPv6 == false) {
|
||||
struct sockaddr_in *bindSockaddr4 = (struct sockaddr_in *)&bindSockaddr;
|
||||
bindSockaddr4->sin_family = AF_INET;
|
||||
bindSockaddr4->sin_port = htons(bindPort);
|
||||
if (bindAddrStr == NULL)
|
||||
if (bindAddrStr == NULL) {
|
||||
bindSockaddr4->sin_addr.s_addr = INADDR_ANY;
|
||||
else
|
||||
} else {
|
||||
bindSockaddr4->sin_addr.s_addr = inet_addr(bindAddrStr);
|
||||
}
|
||||
|
||||
} else {
|
||||
struct sockaddr_in6 *bindSockaddr6 = (struct sockaddr_in6 *)&bindSockaddr;
|
||||
bindSockaddr6->sin6_family = AF_INET6;
|
||||
bindSockaddr6->sin6_port = htons(bindPort);
|
||||
if (bindAddrStr == NULL)
|
||||
if (bindAddrStr == NULL) {
|
||||
bindSockaddr6->sin6_addr = in6addr_any;
|
||||
else
|
||||
} else {
|
||||
inet_pton(AF_INET6, bindAddrStr, &(bindSockaddr6->sin6_addr));
|
||||
}
|
||||
}
|
||||
#ifdef _WIN32
|
||||
int res = bind(*(SOCKET *)socket, (struct sockaddr *)&bindSockaddr, sizeof(bindSockaddr));
|
||||
#else
|
||||
|
|
|
@ -73,6 +73,7 @@ int kbd_enter_pressed(void) {
|
|||
c = getchar();
|
||||
ret |= c == '\n';
|
||||
} while (c != EOF);
|
||||
|
||||
//blocking
|
||||
flags &= ~O_NONBLOCK;
|
||||
if (fcntl(STDIN_FILENO, F_SETFL, flags) < 0) {
|
||||
|
|
|
@ -27,12 +27,14 @@ static CrcType_t current_crc_type = CRC_NONE;
|
|||
void init_table(CrcType_t crctype) {
|
||||
|
||||
// same crc algo, and initialised already
|
||||
if (crctype == current_crc_type && crc_table_init)
|
||||
if (crctype == current_crc_type && crc_table_init) {
|
||||
return;
|
||||
}
|
||||
|
||||
// not the same crc algo. reset table.
|
||||
if (crctype != current_crc_type)
|
||||
if (crctype != current_crc_type) {
|
||||
reset_table();
|
||||
}
|
||||
|
||||
current_crc_type = crctype;
|
||||
|
||||
|
@ -68,23 +70,29 @@ void init_table(CrcType_t crctype) {
|
|||
void generate_table(uint16_t polynomial, bool refin) {
|
||||
|
||||
for (uint16_t i = 0; i < 256; i++) {
|
||||
|
||||
uint16_t c, crc = 0;
|
||||
if (refin)
|
||||
|
||||
if (refin) {
|
||||
c = reflect8(i) << 8;
|
||||
else
|
||||
} else {
|
||||
c = i << 8;
|
||||
}
|
||||
|
||||
for (uint16_t j = 0; j < 8; j++) {
|
||||
|
||||
if ((crc ^ c) & 0x8000)
|
||||
if ((crc ^ c) & 0x8000) {
|
||||
crc = (crc << 1) ^ polynomial;
|
||||
else
|
||||
} else {
|
||||
crc = crc << 1;
|
||||
}
|
||||
|
||||
c = c << 1;
|
||||
}
|
||||
if (refin)
|
||||
|
||||
if (refin) {
|
||||
crc = reflect16(crc);
|
||||
}
|
||||
|
||||
crc_table[i] = crc;
|
||||
}
|
||||
|
@ -102,21 +110,25 @@ uint16_t crc16_fast(uint8_t const *d, size_t n, uint16_t initval, bool refin, bo
|
|||
|
||||
// fast lookup table algorithm without augmented zero bytes, e.g. used in pkzip.
|
||||
// only usable with polynom orders of 8, 16, 24 or 32.
|
||||
if (n == 0)
|
||||
if (n == 0) {
|
||||
return (~initval);
|
||||
}
|
||||
|
||||
uint16_t crc = initval;
|
||||
|
||||
if (refin)
|
||||
if (refin) {
|
||||
crc = reflect16(crc);
|
||||
}
|
||||
|
||||
if (!refin)
|
||||
if (refin == false) {
|
||||
while (n--) crc = (crc << 8) ^ crc_table[((crc >> 8) ^ *d++) & 0xFF ];
|
||||
else
|
||||
} else {
|
||||
while (n--) crc = (crc >> 8) ^ crc_table[(crc & 0xFF) ^ *d++];
|
||||
}
|
||||
|
||||
if (refout ^ refin)
|
||||
if (refout ^ refin) {
|
||||
crc = reflect16(crc);
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
@ -143,8 +155,9 @@ uint16_t update_crc16(uint16_t crc, uint8_t c) {
|
|||
|
||||
// two ways. msb or lsb loop.
|
||||
uint16_t Crc16(uint8_t const *d, size_t bitlength, uint16_t remainder, uint16_t polynomial, bool refin, bool refout) {
|
||||
if (bitlength == 0)
|
||||
if (bitlength == 0) {
|
||||
return (~remainder);
|
||||
}
|
||||
|
||||
uint8_t offset = 8 - (bitlength % 8);
|
||||
// front padding with 0s won't change the CRC result
|
||||
|
@ -153,7 +166,9 @@ uint16_t Crc16(uint8_t const *d, size_t bitlength, uint16_t remainder, uint16_t
|
|||
uint8_t c = prebits | d[i] >> offset;
|
||||
prebits = d[i] << (8 - offset);
|
||||
|
||||
if (refin) c = reflect8(c);
|
||||
if (refin) {
|
||||
c = reflect8(c);
|
||||
}
|
||||
|
||||
// xor in at msb
|
||||
remainder ^= (c << 8);
|
||||
|
@ -167,8 +182,10 @@ uint16_t Crc16(uint8_t const *d, size_t bitlength, uint16_t remainder, uint16_t
|
|||
}
|
||||
}
|
||||
}
|
||||
if (refout)
|
||||
|
||||
if (refout) {
|
||||
remainder = reflect16(remainder);
|
||||
}
|
||||
|
||||
return remainder;
|
||||
}
|
||||
|
|
|
@ -12363,7 +12363,7 @@
|
|||
"--addr <str> MQTT server address",
|
||||
"-p, --port <str> MQTT server port",
|
||||
"--topic <str> MQTT topic",
|
||||
"-f, --file <fn> file to send"
|
||||
"-f, --file <fn> file name to use for received files"
|
||||
],
|
||||
"usage": "mqtt receive [-h] [--addr <str>] [-p <str>] [--topic <str>] [-f <fn>]"
|
||||
},
|
||||
|
@ -13413,6 +13413,6 @@
|
|||
"metadata": {
|
||||
"commands_extracted": 770,
|
||||
"extracted_by": "PM3Help2JSON v1.00",
|
||||
"extracted_on": "2025-07-08T19:08:23"
|
||||
"extracted_on": "2025-07-10T05:07:28"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue