diff options
Diffstat (limited to 'configure.d/config_modules_security_modules')
-rw-r--r-- | configure.d/config_modules_security_modules | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/configure.d/config_modules_security_modules b/configure.d/config_modules_security_modules new file mode 100644 index 0000000..823ca7d --- /dev/null +++ b/configure.d/config_modules_security_modules @@ -0,0 +1,70 @@ +# -*- sh -*- +security_def_list="usm" +security_src_list="" +security_obj_list="" +security_lobj_list="" +security_ftobj_list="" +security_mod_list=" " + +new_with_security= +new_with_out_security=`echo $with_out_security_modules | tr , ' '` + +# Assign additional security modules +for i in `echo $with_security_modules | tr , ' '`; do + if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then + echo + AC_MSG_ERROR([security module conflict - $i both included and excluded]) + elif echo " $new_with_security " | $GREP " $i " > /dev/null ; then + : # Double define, ignore + else + new_with_security="$new_with_security $i" + fi +done + +# Add default security modules +for i in $security_def_list; do + if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then + : # Excluded, ignore + elif echo " $new_with_security " | $GREP " $i " > /dev/null ; then + : # Double define, ignore + else + new_with_security="$new_with_security $i" + fi +done + +# Generate output files +: ${security_init_file:='snmplib/snmpsm_init.h'} +: ${security_shutdown_file:='snmplib/snmpsm_shutdown.h'} +: ${security_incl_file:='include/net-snmp/library/snmpv3-security-includes.h'} + +echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $security_init_file +echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $security_shutdown_file +echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $security_incl_file + +for i in $new_with_security; do + cfile="snmp"$i".c" + hfile="snmp"$i".h" + + # make sure support exists for it + if test -f $srcdir"/snmplib/"$cfile -a -f $srcdir"/include/net-snmp/library/"$hfile; then + : + else + echo + AC_MSG_ERROR(No such security module: $i / $cfile / $hfile) + fi + + # define a bunch of stuff to enable it + security_mod_list="${security_mod_list} $i" + security_src_list="$security_src_list $cfile" + security_src_list="$security_src_list $cfile" + security_hdr_list="$security_hdr_list $hfile" + security_obj_list="$security_obj_list snmp"$i".o" + security_lobj_list="$security_lobj_list snmp"$i".lo" + security_ftobj_list="$security_ftobj_list snmp"$i".ft" + echo "init_"$i"();" >> $security_init_file + echo "shutdown_"$i"();" >> $security_shutdown_file + echo "#include <net-snmp/library/$hfile>" >> $security_incl_file + def_name="AS_TR_CPP([NETSNMP_SECMOD_$i])" + AC_DEFINE_UNQUOTED($def_name) +done + |