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;
|
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)
|
int libj1939_str2addr(const char *str, char **endp, struct sockaddr_can *can)
|
||||||
{
|
{
|
||||||
char *p;
|
char *p;
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#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 int libj1939_str2addr(const char *str, char **endp, struct sockaddr_can *can);
|
||||||
extern const char *libj1939_addr2str(const 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 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)
|
static void onsigalrm(int sig)
|
||||||
{
|
{
|
||||||
error(0, 0, "exit as requested");
|
error(0, 0, "exit as requested");
|
||||||
|
|
@ -157,7 +136,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (argv[optind]) {
|
if (argv[optind]) {
|
||||||
if (strcmp("-", argv[optind]))
|
if (strcmp("-", argv[optind]))
|
||||||
parse_canaddr(argv[optind], &sockname);
|
libj1939_parse_canaddr(argv[optind], &sockname);
|
||||||
++optind;
|
++optind;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -166,7 +145,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
if (argv[optind]) {
|
if (argv[optind]) {
|
||||||
if (strcmp("-", argv[optind])) {
|
if (strcmp("-", argv[optind])) {
|
||||||
parse_canaddr(argv[optind], &peername);
|
libj1939_parse_canaddr(argv[optind], &peername);
|
||||||
valid_peername = 1;
|
valid_peername = 1;
|
||||||
}
|
}
|
||||||
++optind;
|
++optind;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue