Add sockipprotoname() function. Decode the third parameter (protocol)
of a socket() call with sockipprotoname() if the first parameter (domain) is PF_INET or PF_INET6. Old parsing behavior before this change: ping6 CALL socket(PF_INET6,SOCK_RAW,0x3a) New behavior after this change: ping6 CALL socket(PF_INET6,SOCK_RAW,IPPROTO_ICMPV6)
This commit is contained in:
parent
d18b5b8ca1
commit
8bc31d836f
@ -58,6 +58,7 @@ extern int errno;
|
||||
#include <sys/ktrace.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/socket.h>
|
||||
#include <err.h>
|
||||
#include <locale.h>
|
||||
#include <stdio.h>
|
||||
@ -528,14 +529,23 @@ ktrsyscall(struct ktr_syscall *ktr)
|
||||
ip++;
|
||||
narg-=2;
|
||||
} else if (ktr->ktr_code == SYS_socket) {
|
||||
int sockdomain;
|
||||
(void)putchar('(');
|
||||
sockdomainname((int)*ip);
|
||||
sockdomain=(int)*ip;
|
||||
sockdomainname(sockdomain);
|
||||
ip++;
|
||||
narg--;
|
||||
(void)putchar(',');
|
||||
socktypename((int)*ip);
|
||||
ip++;
|
||||
narg--;
|
||||
if (sockdomain == PF_INET ||
|
||||
sockdomain == PF_INET6) {
|
||||
(void)putchar(',');
|
||||
sockipprotoname((int)*ip);
|
||||
ip++;
|
||||
narg--;
|
||||
}
|
||||
c = ',';
|
||||
} else if (ktr->ktr_code == SYS_setsockopt ||
|
||||
ktr->ktr_code == SYS_getsockopt) {
|
||||
|
@ -21,6 +21,7 @@ void flockname (int);
|
||||
void sockoptname (int);
|
||||
void sockoptlevelname (int, int);
|
||||
void sockdomainname (int);
|
||||
void sockipprotoname (int);
|
||||
void socktypename (int);
|
||||
void thrcreateflagsname (int);
|
||||
void mlockallname (int);
|
||||
|
@ -138,6 +138,7 @@ cat <<_EOF_
|
||||
#define _KERNEL
|
||||
#include <sys/socket.h>
|
||||
#undef _KERNEL
|
||||
#include <netinet/in.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/resource.h>
|
||||
@ -335,6 +336,7 @@ auto_switch_type "lio_listioname" "LIO_(NO)?WAIT[[:space:]]+[0-9]+" "aio.h"
|
||||
auto_switch_type "minheritname" "INHERIT_[A-Z]+[[:space:]]+[0-9]+" "sys/mman.h"
|
||||
auto_switch_type "quotactlname" "Q_[A-Z]+[[:space:]]+0x[0-9]+" "ufs/ufs/quota.h"
|
||||
auto_if_type "sockdomainname" "PF_[[:alnum:]]+[[:space:]]+" "sys/socket.h"
|
||||
auto_if_type "sockipprotoname" "IPPROTO_[[:alnum:]]+[[:space:]]+" "netinet/in.h"
|
||||
auto_switch_type "sockoptname" "SO_[A-Z]+[[:space:]]+0x[0-9]+" "sys/socket.h"
|
||||
auto_switch_type "socktypename" "SOCK_[A-Z]+[[:space:]]+[1-9]+[0-9]*" "sys/socket.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user