mirror of
https://repo.or.cz/socat.git
synced 2025-07-06 21:16:34 +00:00
Added VSOCK stream addresses
This commit is contained in:
parent
1c7ddfef73
commit
1502f0cdcb
18 changed files with 442 additions and 4 deletions
41
sysutils.c
41
sysutils.c
|
@ -204,6 +204,10 @@ char *sockaddr_info(const struct sockaddr *sa, socklen_t salen, char *buff, size
|
|||
#if WITH_IP6
|
||||
case AF_INET6: sockaddr_inet6_info(&sau->ip6, cp, blen);
|
||||
break;
|
||||
#endif
|
||||
#if WITH_VSOCK
|
||||
case AF_VSOCK: sockaddr_vm_info(&sau->vm, cp, blen);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
n = xio_snprintf(cp, blen, "AF=%d ", sa->sa_family);
|
||||
|
@ -297,6 +301,43 @@ char *sockaddr_inet4_info(const struct sockaddr_in *sa, char *buff, size_t blen)
|
|||
}
|
||||
#endif /* WITH_IP4 */
|
||||
|
||||
#if WITH_VSOCK
|
||||
char *sockaddr_vm_info(const struct sockaddr_vm *sa, char *buff, size_t blen) {
|
||||
if (xio_snprintf(buff, blen, "cid:%u port:%u", sa->svm_cid, sa->svm_port) >= blen) {
|
||||
Warn("sockaddr_vm_info(): buffer too short");
|
||||
buff[blen-1] = '\0';
|
||||
}
|
||||
return buff;
|
||||
}
|
||||
|
||||
int sockaddr_vm_parse(struct sockaddr_vm *sa, const char *cid_str,
|
||||
const char *port_str)
|
||||
{
|
||||
char *garbage = NULL;
|
||||
if (!cid_str) {
|
||||
sa->svm_cid = VMADDR_CID_ANY;
|
||||
} else {
|
||||
sa->svm_cid = strtoul(cid_str, &garbage, 0);
|
||||
if (*garbage != '\0') {
|
||||
Error1("sockaddr_vm - garbage in cid: \"%s\"", garbage);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
if (!port_str) {
|
||||
sa->svm_port = VMADDR_PORT_ANY;
|
||||
} else {
|
||||
sa->svm_port = strtoul(port_str, &garbage, 0);
|
||||
if (*garbage != '\0') {
|
||||
Error1("sockaddr_vm - garbage in port: \"%s\"", garbage);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* WITH_IP4 */
|
||||
|
||||
#if !HAVE_INET_NTOP
|
||||
/* http://www.opengroup.org/onlinepubs/000095399/functions/inet_ntop.html */
|
||||
const char *inet_ntop(int pf, const void *binaddr,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue