Merge pull request #484 from mrdeep1/client_add_nl_option

coap-client: Add in option to add in newline after receipt of data
This commit is contained in:
obgm authored and GitHub committed 2020-11-12 16:02:27 +01:00
commit 471b171a1e
2 files changed
+25 -7

No files matched your search

+21 -6
View File
@@ -74,6 +74,8 @@ static coap_string_t payload = { 0, NULL }; /* optional payload to send */
static int reliable = 0;
static int add_nl = 0;
unsigned char msgtype = COAP_MESSAGE_CON; /* usually, requests are sent confirmable */
static char *cert_file = NULL; /* certificate and optional private key in PEM,
@@ -462,8 +464,11 @@ message_handler(struct coap_context_t *ctx,
uint16_t blktype = opt_iter.type;
/* TODO: check if we are looking at the correct block number */
if (coap_get_data(received, &len, &databuf))
if (coap_get_data(received, &len, &databuf)) {
append_to_output(databuf, len);
if (!COAP_OPT_BLOCK_MORE(block_opt) && add_nl)
append_to_output((const uint8_t*)"\n", 1);
}
if (coap_opt_block_num(block_opt) == 0) {
/* See if observe is set in first response */
@@ -575,8 +580,11 @@ message_handler(struct coap_context_t *ctx,
if (payload.length <= (block.num+1) * (1 << (block.szx + 4))) {
coap_log(LOG_DEBUG, "upload ready\n");
if (coap_get_data(received, &len, &databuf))
if (coap_get_data(received, &len, &databuf)) {
append_to_output(databuf, len);
if (add_nl)
append_to_output((const uint8_t*)"\n", 1);
}
ready = 1;
return;
}
@@ -651,8 +659,11 @@ message_handler(struct coap_context_t *ctx,
}
} else {
/* There is no block option set, just read the data and we are done. */
if (coap_get_data(received, &len, &databuf))
if (coap_get_data(received, &len, &databuf)) {
append_to_output(databuf, len);
if (add_nl)
append_to_output((const uint8_t*)"\n", 1);
}
}
}
} else { /* no 2.05 */
@@ -692,8 +703,8 @@ usage( const char *program, const char *version) {
"%s\n\n"
"Usage: %s [-a addr] [-b [num,]size] [-e text] [-f file] [-l loss]\n"
"\t\t[-m method] [-o file] [-p port] [-r] [-s duration] [-t type]\n"
"\t\t[-v num] [-A type] [-B seconds] [-H hoplimit] [-K interval] [-N]\n"
"\t\t[-O num,text] [-P scheme://address[:port]] [-T token] [-U]\n"
"\t\t[-v num] [-w] [-A type] [-B seconds] [-H hoplimit] [-K interval]\n"
"\t\t[-N] [-O num,text] [-P scheme://address[:port]] [-T token] [-U]\n"
"\t\t[[-h match_hint_file] [-k key] [-u user]]\n"
"\t\t[[-c certfile] [-j keyfile] [-C cafile] [-J pkcs11_pin]\n"
"\t\t[-M raw_pk] [-R root_cafile] [-S match_pki_sni_file]] URI\n"
@@ -722,6 +733,7 @@ usage( const char *program, const char *version) {
"\t-t type\t\tContent format for given resource for PUT/POST\n"
"\t-v num \t\tVerbosity level (default 3, maximum is 9). Above 7,\n"
"\t \t\tthere is increased verbosity in GnuTLS logging\n"
"\t-w \t\tAppend a newline to received data\n"
"\t-A type\t\tAccepted media type\n"
"\t-B seconds\tBreak operation after waiting given seconds\n"
"\t \t\t(default is %d)\n"
@@ -1668,7 +1680,7 @@ main(int argc, char **argv) {
struct sigaction sa;
#endif
while ((opt = getopt(argc, argv, "a:b:c:e:f:h:j:k:l:m:o:p:rs:t:u:v:A:B:C:J:K:H:M:NO:P:R:T:U")) != -1) {
while ((opt = getopt(argc, argv, "a:b:c:e:f:h:j:k:l:m:o:p:rs:t:u:v:wA:B:C:H:J:K:M:NO:P:R:T:U")) != -1) {
switch (opt) {
case 'a':
strncpy(node_str, optarg, NI_MAXHOST - 1);
@@ -1713,6 +1725,9 @@ main(int argc, char **argv) {
case 'm':
method = cmdline_method(optarg);
break;
case 'w':
add_nl = 1;
break;
case 'N':
msgtype = COAP_MESSAGE_NON;
break;
+4 -1
View File
@@ -16,7 +16,7 @@ SYNOPSIS
--------
*coap-client* [*-a* addr] [*-b* [num,]size] [*-e* text] [*-f* file] [*-l* loss]
[*-m* method] [*-o* file] [*-p* port] [*-r*] [*-s duration*]
[*-t* type] [*-v* num] [*-A* type] [*-B* seconds]
[*-t* type] [*-v* num] [*-w*] [*-A* type] [*-B* seconds]
[*-H* hoplimit] [*-K* interval] [*-N*] [*-O* num,text]
[*-P* scheme://addr[:port]] [*-T* token] [*-U*]
[[*-h* match_hint_file] [*-k* key] [*-u* user]]
@@ -105,6 +105,9 @@ OPTIONS - General
The verbosity level to use (default 3, maximum is 9). Above 7, there is
increased verbosity in GnuTLS and OpenSSL logging.
*-w*::
Append a newline to received data.
*-A* type::
Accepted media type. 'type' must be either a numeric value reflecting a
valid CoAP content format or a string that specifies a registered format as