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
Oleksij Rempel 2019-01-04 12:56:18 +01:00
parent c45a17e96b
commit e649b6ee2a
3 changed files with 24 additions and 23 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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;