rexecd/rexec: support AF_RPMSG to communicate
Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
parent
00e7be92dc
commit
2add33e6a3
@ -66,14 +66,15 @@ static int do_rexec(FAR struct rexec_arg_s *arg);
|
||||
static void usage(FAR const char *progname)
|
||||
{
|
||||
fprintf(stderr, "Usage: %s [-u user] [-H host] [-p password] "
|
||||
"[-P port] [-4|-6] command\n", progname);
|
||||
"[-P port] [-4|-6|-r] command\n", progname);
|
||||
fprintf(stderr, "Remote Execution Client:\n"
|
||||
" -u, Specify the user, default is \\0\n"
|
||||
" -H, Specify the hostname\n"
|
||||
" -p, Specify the password, default is \\0\n"
|
||||
" -P, Specify the port to connect to, default is 512\n"
|
||||
" -4, Specify address family AF_INET(default)\n"
|
||||
" -6, Specify address family AF_INET6\n");
|
||||
" -6, Specify address family AF_INET6\n"
|
||||
" -r, Specify address family AF_RPMSG\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -123,7 +124,7 @@ int main(int argc, FAR char **argv)
|
||||
arg.port = REXEC_SERVER_PORT;
|
||||
arg.af = AF_INET;
|
||||
|
||||
while ((option = getopt(argc, argv, "u:H:p:P:46")) != ERROR)
|
||||
while ((option = getopt(argc, argv, "u:H:p:P:46r")) != ERROR)
|
||||
{
|
||||
switch (option)
|
||||
{
|
||||
@ -145,6 +146,9 @@ int main(int argc, FAR char **argv)
|
||||
case '6':
|
||||
arg.af = AF_INET6;
|
||||
break;
|
||||
case 'r':
|
||||
arg.af = AF_RPMSG;
|
||||
break;
|
||||
default:
|
||||
usage(argv[0]);
|
||||
}
|
||||
|
@ -25,6 +25,7 @@
|
||||
#include <errno.h>
|
||||
#include <netdb.h>
|
||||
#include <pthread.h>
|
||||
#include <netpacket/rpmsg.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
@ -128,10 +129,11 @@ errout:
|
||||
|
||||
static void usage(FAR const char *progname)
|
||||
{
|
||||
fprintf(stderr, "Usage: %s [-4|-6]\n", progname);
|
||||
fprintf(stderr, "Usage: %s [-4|-6|-r]\n", progname);
|
||||
fprintf(stderr, "Remote Execution Deamon:\n"
|
||||
" -4, Specify address family to AF_INET(default)\n"
|
||||
" -6, Specify address family to AF_INET6\n");
|
||||
" -6, Specify address family to AF_INET6\n"
|
||||
" -r, Specify address family to AF_RPMSG\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -147,7 +149,7 @@ int main(int argc, FAR char **argv)
|
||||
int ret;
|
||||
|
||||
family = AF_INET;
|
||||
while ((option = getopt(argc, argv, "46")) != ERROR)
|
||||
while ((option = getopt(argc, argv, "46r")) != ERROR)
|
||||
{
|
||||
switch (option)
|
||||
{
|
||||
@ -157,6 +159,9 @@ int main(int argc, FAR char **argv)
|
||||
case '6':
|
||||
family = AF_INET6;
|
||||
break;
|
||||
case 'r':
|
||||
family = AF_RPMSG;
|
||||
break;
|
||||
default:
|
||||
usage(argv[0]);
|
||||
}
|
||||
@ -168,6 +173,7 @@ int main(int argc, FAR char **argv)
|
||||
return serv;
|
||||
}
|
||||
|
||||
memset(&addr, 0, sizeof(addr));
|
||||
switch (family)
|
||||
{
|
||||
case AF_INET:
|
||||
@ -179,6 +185,12 @@ int main(int argc, FAR char **argv)
|
||||
((FAR struct sockaddr_in6 *)&addr)->sin6_family = AF_INET6;
|
||||
((FAR struct sockaddr_in6 *)&addr)->sin6_port = REXECD_PORT;
|
||||
ret = sizeof(struct sockaddr_in6);
|
||||
break;
|
||||
case AF_RPMSG:
|
||||
((FAR struct sockaddr_rpmsg *)&addr)->rp_family = AF_RPMSG;
|
||||
snprintf(((FAR struct sockaddr_rpmsg *)&addr)->rp_name,
|
||||
RPMSG_SOCKET_NAME_SIZE, "%d", REXECD_PORT);
|
||||
ret = sizeof(struct sockaddr_rpmsg);
|
||||
}
|
||||
|
||||
ret = bind(serv, (FAR struct sockaddr *)&addr, ret);
|
||||
|
Loading…
x
Reference in New Issue
Block a user