diff options
-rw-r--r-- | src/basic/generate-socket-protocol-list.sh | 5 | ||||
-rw-r--r-- | src/basic/meson.build | 12 | ||||
-rw-r--r-- | src/basic/socket-protocol-to-name.awk | 9 |
3 files changed, 25 insertions, 1 deletions
diff --git a/src/basic/generate-socket-protocol-list.sh b/src/basic/generate-socket-protocol-list.sh new file mode 100644 index 000000000..18a540f32 --- /dev/null +++ b/src/basic/generate-socket-protocol-list.sh @@ -0,0 +1,5 @@ +#!/bin/sh -eu + +$1 -dM -include netinet/in.h - </dev/null | \ + awk '/^#define[ \t]+IPPROTO_[^ \t]+[ \t]+[^ \t]/ { print $2; }' | \ + sed -e 's/IPPROTO_//' diff --git a/src/basic/meson.build b/src/basic/meson.build index 3ea5e059a..5d9780e94 100644 --- a/src/basic/meson.build +++ b/src/basic/meson.build @@ -177,6 +177,8 @@ # smack-util.c # smack-util.h # socket-label.c +# socket-protocol-list.c +# socket-protocol-list.h # socket-util.c # socket-util.h # sparse-endian.h @@ -404,12 +406,20 @@ errno_list_txt = custom_target( command : [generate_errno_list, cpp], capture : true) +generate_socket_protocol_list = find_program('generate-socket-protocol-list.sh') +socket_protocol_list_txt = custom_target( + 'socket-protocol-list.txt', + output : 'socket-protocol-list.txt', + command : [generate_socket_protocol_list, cpp], + capture : true) + generated_gperf_headers = [] #if 0 /// elogind has only the cap and errno list. # foreach item : [['af', af_list_txt, 'af', ''], # ['arphrd', arphrd_list_txt, 'arphrd', 'ARPHRD_'], # ['cap', cap_list_txt, 'capability', ''], -# ['errno', errno_list_txt, 'errno', '']] +# ['errno', errno_list_txt, 'errno', ''], +# ['socket-protocol', socket_protocol_list_txt, 'socket_protocol', 'IPPROTO_']] #else foreach item : [['cap', cap_list_txt, 'capability', ''], ['errno', errno_list_txt, 'errno', '']] diff --git a/src/basic/socket-protocol-to-name.awk b/src/basic/socket-protocol-to-name.awk new file mode 100644 index 000000000..4848a7631 --- /dev/null +++ b/src/basic/socket-protocol-to-name.awk @@ -0,0 +1,9 @@ +BEGIN{ + print "static const char* const socket_protocol_names[] = { " +} +!/HOPOPTS/ { + printf " [IPPROTO_%s] = \"%s\",\n", $1, tolower($1) +} +END{ + print "};" +} |