libj1939: add libj1939_parse_canaddr and reuse it by testj1939
this function will be needed jcat Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>pull/114/head
parent
c45a17e96b
commit
e649b6ee2a
21
libj1939.c
21
libj1939.c
|
|
@ -92,6 +92,27 @@ static int libj1939_ifindex(const char *str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void libj1939_parse_canaddr(char *spec, struct sockaddr_can *paddr)
|
||||
{
|
||||
char *str;
|
||||
|
||||
str = strsep(&spec, ":");
|
||||
if (strlen(str))
|
||||
paddr->can_ifindex = if_nametoindex(str);
|
||||
|
||||
str = strsep(&spec, ",");
|
||||
if (str && strlen(str))
|
||||
paddr->can_addr.j1939.addr = strtoul(str, NULL, 0);
|
||||
|
||||
str = strsep(&spec, ",");
|
||||
if (str && strlen(str))
|
||||
paddr->can_addr.j1939.pgn = strtoul(str, NULL, 0);
|
||||
|
||||
str = strsep(&spec, ",");
|
||||
if (str && strlen(str))
|
||||
paddr->can_addr.j1939.name = strtoul(str, NULL, 0);
|
||||
}
|
||||
|
||||
int libj1939_str2addr(const char *str, char **endp, struct sockaddr_can *can)
|
||||
{
|
||||
char *p;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
void libj1939_parse_canaddr(char *spec, struct sockaddr_can *paddr);
|
||||
extern int libj1939_str2addr(const char *str, char **endp, struct sockaddr_can *can);
|
||||
extern const char *libj1939_addr2str(const struct sockaddr_can *can);
|
||||
|
||||
|
|
|
|||
25
testj1939.c
25
testj1939.c
|
|
@ -50,27 +50,6 @@ static const char help_msg[] =
|
|||
|
||||
static const char optstring[] = "?vbos::rep:cnw::";
|
||||
|
||||
static void parse_canaddr(char *spec, struct sockaddr_can *paddr)
|
||||
{
|
||||
char *str;
|
||||
|
||||
str = strsep(&spec, ":");
|
||||
if (strlen(str))
|
||||
paddr->can_ifindex = if_nametoindex(str);
|
||||
|
||||
str = strsep(&spec, ",");
|
||||
if (str && strlen(str))
|
||||
paddr->can_addr.j1939.addr = strtoul(str, NULL, 0);
|
||||
|
||||
str = strsep(&spec, ",");
|
||||
if (str && strlen(str))
|
||||
paddr->can_addr.j1939.pgn = strtoul(str, NULL, 0);
|
||||
|
||||
str = strsep(&spec, ",");
|
||||
if (str && strlen(str))
|
||||
paddr->can_addr.j1939.name = strtoul(str, NULL, 0);
|
||||
}
|
||||
|
||||
static void onsigalrm(int sig)
|
||||
{
|
||||
error(0, 0, "exit as requested");
|
||||
|
|
@ -157,7 +136,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
if (argv[optind]) {
|
||||
if (strcmp("-", argv[optind]))
|
||||
parse_canaddr(argv[optind], &sockname);
|
||||
libj1939_parse_canaddr(argv[optind], &sockname);
|
||||
++optind;
|
||||
}
|
||||
|
||||
|
|
@ -166,7 +145,7 @@ int main(int argc, char *argv[])
|
|||
|
||||
if (argv[optind]) {
|
||||
if (strcmp("-", argv[optind])) {
|
||||
parse_canaddr(argv[optind], &peername);
|
||||
libj1939_parse_canaddr(argv[optind], &peername);
|
||||
valid_peername = 1;
|
||||
}
|
||||
++optind;
|
||||
|
|
|
|||
Loading…
Reference in New Issue