mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
refactor: use strtok_r() instead of strtok()
This commit is contained in:
parent
82954a2853
commit
5b553f2496
6 changed files with 33 additions and 32 deletions
|
@ -32,14 +32,14 @@
|
|||
|
||||
int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *nodes)
|
||||
{
|
||||
char *cpy, *node, *type, *field, *end;
|
||||
char *cpy, *node, *type, *field, *end, *lasts;
|
||||
|
||||
cpy = strdup(str);
|
||||
if (!cpy)
|
||||
return -1;
|
||||
|
||||
if (nodes) {
|
||||
node = strtok(cpy, ".");
|
||||
node = strtok_r(cpy, ".", &lasts);
|
||||
if (!node) {
|
||||
warning("Missing node name");
|
||||
goto invalid_format;
|
||||
|
@ -51,14 +51,14 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *n
|
|||
goto invalid_format;
|
||||
}
|
||||
|
||||
type = strtok(NULL, ".[");
|
||||
type = strtok_r(NULL, ".[", &lasts);
|
||||
if (!type)
|
||||
type = "data";
|
||||
}
|
||||
else {
|
||||
me->node = NULL;
|
||||
|
||||
type = strtok(cpy, ".[");
|
||||
type = strtok_r(cpy, ".[", &lasts);
|
||||
if (!type)
|
||||
goto invalid_format;
|
||||
}
|
||||
|
@ -67,11 +67,11 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *n
|
|||
me->type = MAPPING_TYPE_STATS;
|
||||
me->length = 1;
|
||||
|
||||
char *metric = strtok(NULL, ".");
|
||||
char *metric = strtok_r(NULL, ".", &lasts);
|
||||
if (!metric)
|
||||
goto invalid_format;
|
||||
|
||||
type = strtok(NULL, ".");
|
||||
type = strtok_r(NULL, ".", &lasts);
|
||||
if (!type)
|
||||
goto invalid_format;
|
||||
|
||||
|
@ -87,7 +87,7 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *n
|
|||
me->type = MAPPING_TYPE_HEADER;
|
||||
me->length = 1;
|
||||
|
||||
field = strtok(NULL, ".");
|
||||
field = strtok_r(NULL, ".", &lasts);
|
||||
if (!field) {
|
||||
warning("Missing header type");
|
||||
goto invalid_format;
|
||||
|
@ -106,7 +106,7 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *n
|
|||
me->type = MAPPING_TYPE_TIMESTAMP;
|
||||
me->length = 2;
|
||||
|
||||
field = strtok(NULL, ".");
|
||||
field = strtok_r(NULL, ".", &lasts);
|
||||
if (!field) {
|
||||
warning("Missing timestamp type");
|
||||
goto invalid_format;
|
||||
|
@ -127,7 +127,7 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *n
|
|||
|
||||
me->type = MAPPING_TYPE_DATA;
|
||||
|
||||
first_str = strtok(NULL, "-]");
|
||||
first_str = strtok_r(NULL, "-]", &lasts);
|
||||
if (first_str) {
|
||||
if (me->node)
|
||||
first = vlist_lookup_index(&me->node->in.signals, first_str);
|
||||
|
@ -148,7 +148,7 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *n
|
|||
goto end;
|
||||
}
|
||||
|
||||
last_str = strtok(NULL, "]");
|
||||
last_str = strtok_r(NULL, "]", &lasts);
|
||||
if (last_str) {
|
||||
if (me->node)
|
||||
last = vlist_lookup_index(&me->node->in.signals, last_str);
|
||||
|
@ -175,7 +175,7 @@ int mapping_parse_str(struct mapping_entry *me, const char *str, struct vlist *n
|
|||
goto invalid_format;
|
||||
|
||||
end: /* Check that there is no garbage at the end */
|
||||
end = strtok(NULL, "");
|
||||
end = strtok_r(NULL, "", &lasts);
|
||||
if (end)
|
||||
goto invalid_format;
|
||||
|
||||
|
|
|
@ -174,8 +174,7 @@ int ib_parse(struct node *n, json_t *cfg)
|
|||
struct infiniband *ib = (struct infiniband *) n->_vd;
|
||||
|
||||
int ret;
|
||||
char *local = NULL;
|
||||
char *remote = NULL;
|
||||
char *local = NULL, *remote = NULL, *lasts;
|
||||
const char *transport_mode = "RC";
|
||||
int timeout = 1000;
|
||||
int recv_cq_size = 128;
|
||||
|
@ -255,8 +254,8 @@ int ib_parse(struct node *n, json_t *cfg)
|
|||
debug(LOG_IB | 4, "Set buffer subtraction to %i in node %s", buffer_subtraction, node_name(n));
|
||||
|
||||
// Translate IP:PORT to a struct addrinfo
|
||||
char* ip_adr = strtok(local, ":");
|
||||
char* port = strtok(NULL, ":");
|
||||
char* ip_adr = strtok_r(local, ":", &lasts);
|
||||
char* port = strtok_r(NULL, ":", &lasts);
|
||||
|
||||
ret = getaddrinfo(ip_adr, port, NULL, &ib->conn.src_addr);
|
||||
if (ret)
|
||||
|
@ -327,8 +326,8 @@ int ib_parse(struct node *n, json_t *cfg)
|
|||
// If node will send data, set remote address
|
||||
if (ib->is_source) {
|
||||
// Translate address info
|
||||
char* ip_adr = strtok(remote, ":");
|
||||
char* port = strtok(NULL, ":");
|
||||
char *ip_adr = strtok_r(remote, ":", &lasts);
|
||||
char *port = strtok_r(NULL, ":", &lasts);
|
||||
|
||||
ret = getaddrinfo(ip_adr, port, NULL, &ib->conn.dst_addr);
|
||||
if (ret)
|
||||
|
|
|
@ -40,7 +40,7 @@ int influxdb_parse(struct node *n, json_t *json)
|
|||
json_error_t err;
|
||||
int ret;
|
||||
|
||||
char *tmp, *host, *port;
|
||||
char *tmp, *host, *port, *lasts;
|
||||
const char *server, *key;
|
||||
|
||||
ret = json_unpack_ex(json, &err, 0, "{ s: s, s: s, s?: o }",
|
||||
|
@ -52,8 +52,8 @@ int influxdb_parse(struct node *n, json_t *json)
|
|||
|
||||
tmp = strdup(server);
|
||||
|
||||
host = strtok(tmp, ":");
|
||||
port = strtok(NULL, "");
|
||||
host = strtok_r(tmp, ":", &lasts);
|
||||
port = strtok_r(NULL, "", &lasts);
|
||||
|
||||
i->key = strdup(key);
|
||||
i->host = strdup(host);
|
||||
|
|
|
@ -626,9 +626,10 @@ int socket_parse_address(const char *addr, struct sockaddr *saddr, enum socket_l
|
|||
#ifdef WITH_SOCKET_LAYER_ETH
|
||||
else if (layer == SOCKET_LAYER_ETH) { /* Format: "ab:cd:ef:12:34:56%ifname:protocol" */
|
||||
/* Split string */
|
||||
char *node = strtok(copy, "%");
|
||||
char *ifname = strtok(NULL, ":");
|
||||
char *proto = strtok(NULL, "\0");
|
||||
char *lasts;
|
||||
char *node = strtok_r(copy, "%", &lasts);
|
||||
char *ifname = strtok_r(NULL, ":", &lasts);
|
||||
char *proto = strtok_r(NULL, "\0", &lasts);
|
||||
|
||||
/* Parse link layer (MAC) address */
|
||||
struct ether_addr *mac = ether_aton(node);
|
||||
|
@ -659,8 +660,9 @@ int socket_parse_address(const char *addr, struct sockaddr *saddr, enum socket_l
|
|||
};
|
||||
|
||||
/* Split string */
|
||||
char *node = strtok(copy, ":");
|
||||
char *service = strtok(NULL, "\0");
|
||||
char *lasts;
|
||||
char *node = strtok_r(copy, ":", &lasts);
|
||||
char *service = strtok_r(NULL, "\0", &lasts);
|
||||
|
||||
if (node && !strcmp(node, "*"))
|
||||
node = NULL;
|
||||
|
|
|
@ -51,7 +51,7 @@ int stats_node_signal_parse(struct stats_node_signal *s, json_t *cfg)
|
|||
|
||||
int ret;
|
||||
const char *stats;
|
||||
char *metric, *type, *node, *cpy;
|
||||
char *metric, *type, *node, *cpy, *lasts;
|
||||
|
||||
ret = json_unpack_ex(cfg, &err, 0, "{ s: s }",
|
||||
"stats", &stats
|
||||
|
@ -61,15 +61,15 @@ int stats_node_signal_parse(struct stats_node_signal *s, json_t *cfg)
|
|||
|
||||
cpy = strdup(stats);
|
||||
|
||||
node = strtok(cpy, ".");
|
||||
node = strtok_r(cpy, ".", &lasts);
|
||||
if (!node)
|
||||
goto invalid_format;
|
||||
|
||||
metric = strtok(NULL, ".");
|
||||
metric = strtok_r(NULL, ".", &lasts);
|
||||
if (!metric)
|
||||
goto invalid_format;
|
||||
|
||||
type = strtok(NULL, ".");
|
||||
type = strtok_r(NULL, ".", &lasts);
|
||||
if (!type)
|
||||
goto invalid_format;
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
|
|||
*/
|
||||
|
||||
/* Get path of incoming request */
|
||||
char *node, *format;
|
||||
char *node, *format, *lasts;
|
||||
char uri[64];
|
||||
|
||||
lws_hdr_copy(wsi, uri, sizeof(uri), WSI_TOKEN_GET_URI); /* The path component of the*/
|
||||
|
@ -213,14 +213,14 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
|
|||
return -1;
|
||||
}
|
||||
|
||||
node = strtok(uri, "/.");
|
||||
node = strtok_r(uri, "/.", &lasts);
|
||||
if (!node) {
|
||||
websocket_connection_close(c, wsi, LWS_CLOSE_STATUS_POLICY_VIOLATION, "Unknown node");
|
||||
warning("Failed to tokenize request URI");
|
||||
return -1;
|
||||
}
|
||||
|
||||
format = strtok(NULL, "");
|
||||
format = strtok_r(NULL, "", &lasts);
|
||||
if (!format)
|
||||
format = "villas.web";
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue