| #!/bin/sh |
| |
| . ../support/simple_eval_tools.sh |
| |
| HEADER com2sec directive |
| |
| SKIPIFNOT NETSNMP_TRANSPORT_UDP_DOMAIN |
| SKIPIF NETSNMP_NO_DEBUGGING |
| |
| # |
| # Begin test |
| # |
| |
| # 401a Test missing CONTEXT |
| CONFIGAGENT 'com2sec -Cn' |
| # 401b Test empty CONTEXT |
| CONFIGAGENT 'com2sec -Cn ""' |
| # 401c Test overlong CONTEXT (34 chars) |
| CONFIGAGENT 'com2sec -Cn 1234567890123456789012345678901234' |
| |
| # 402a Test missing secName |
| CONFIGAGENT 'com2sec' |
| # 402b Test empty secName |
| CONFIGAGENT 'com2sec ""' |
| # 402c Test overlong secName (34 chars) |
| CONFIGAGENT 'com2sec 1234567890123456789012345678901234' |
| # 402d Test valid context and missing secName |
| CONFIGAGENT 'com2sec -Cn 123456789012345678901234567890123' |
| # 402e Test valid context and empty secName |
| CONFIGAGENT 'com2sec -Cn 123456789012345678901234567890123 ""' |
| |
| # 403a Test missing network address |
| CONFIGAGENT 'com2sec t403a' |
| # 403b Test empty network address |
| CONFIGAGENT 'com2sec t403b ""' |
| # 403c Test forbidden value (now why it is forbidden...) |
| CONFIGAGENT 'com2sec t403c NETWORK' |
| |
| # 404a Test missing community |
| CONFIGAGENT 'com2sec t404a default' |
| # 404b Test empty community |
| CONFIGAGENT 'com2sec t404b default ""' |
| # 404c Test forbidden value (now why it is forbidden...) |
| CONFIGAGENT 'com2sec t404c default COMMUNITY' |
| # 404d Test overlong community (255 chars) |
| CONFIGAGENT 'com2sec t404d default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345' |
| # 404e Test valid community |
| CONFIGAGENT 'com2sec t404e default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234' |
| |
| # 405a Test 'default' configuration |
| CONFIGAGENT 'com2sec t405a default c405a' |
| # 405b Test ip address configuration |
| CONFIGAGENT 'com2sec t405b 10.0.0.0 c405b' |
| # 405c Test valid numeric mask |
| CONFIGAGENT 'com2sec t405c 10.0.0.0/8 c405c' |
| # 405d Test invalid numeric mask (too big) |
| CONFIGAGENT 'com2sec t405d 10.0.0.0/33 c405d' |
| # 405e Test invalid numeric mask (negative) |
| CONFIGAGENT 'com2sec t405e 10.0.0.0/-1 c405e' |
| # 405f Test valid ip address mask |
| CONFIGAGENT 'com2sec t405f 10.0.0.0/255.0.0.0 c405f' |
| # 405g Test invalid ip address mask |
| CONFIGAGENT 'com2sec t405g 10.0.0.0/512.0.0.0 c405g' |
| # 405h Test invalid ip address mask |
| CONFIGAGENT 'com2sec t405h 10.0.0.0/hh c405h' |
| # 405i Test address with 1 bits not covered by the mask |
| CONFIGAGENT 'com2sec t405i 10.0.0.0/3.192.0.0 c405i' |
| # 405j Test that 0.0.0.0 works (alias for default) |
| CONFIGAGENT 'com2sec t405j 0.0.0.0 c405j' |
| # 405k Test that 0.0.0.0/0 works (alias for default) |
| CONFIGAGENT 'com2sec t405k 0.0.0.0/0 c405k' |
| # 405l Test that 0.0.0.0/0.0.0.0 works (alias for default) |
| CONFIGAGENT 'com2sec t405l 0.0.0.0/0.0.0.0 c405l' |
| |
| # 406a Test maximally long address/mask |
| CONFIGAGENT 'com2sec t406a 255.255.255.255/255.255.255.255 c406a' |
| |
| # 407a Test non existant host name |
| CONFIGAGENT 'com2sec t407a no.such.address. c407a' |
| # 407b Test maximally long host name/mask |
| CONFIGAGENT 'com2sec t407b a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a234567890123456789012345678901234567890123456789012345678901./255.255.255.255 c407b' |
| |
| # 408 Lookup tests, require network access |
| # 408a Test lookup returning a single host |
| CONFIGAGENT 'com2sec t408a www.ietf.org c408a' |
| # 408a Test lookup returning multiple hosts |
| CONFIGAGENT 'com2sec t408b www.google.com c408b' |
| |
| # Default agent setup |
| CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR" |
| # Dummy config to prevent the basic_setup warning |
| CONFIGAGENT 'rocommunity public 127.0.0.0/8' |
| |
| AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security' |
| |
| STARTAGENT |
| |
| SAVECHECKAGENT() { |
| CHECKAGENT "$@" |
| if [ "x$return_value" != "x0" ] ; then |
| FINISHED |
| fi |
| } |
| |
| SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter' |
| SAVECHECKAGENT 'line 2: Error: missing NAME parameter' |
| SAVECHECKAGENT 'line 3: Error: context name too long' |
| CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2sec token.' |
| SAVECHECKAGENT 'line 5: Error: empty NAME parameter' |
| SAVECHECKAGENT 'line 6: Error: security name too long' |
| SAVECHECKAGENT 'line 7: Error: missing NAME parameter' |
| SAVECHECKAGENT 'line 8: Error: empty NAME parameter' |
| SAVECHECKAGENT 'line 9: Error: missing SOURCE parameter' |
| SAVECHECKAGENT 'line 10: Error: empty SOURCE parameter' |
| SAVECHECKAGENT 'line 11: Error: example config NETWORK not properly configured' |
| SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter' |
| SAVECHECKAGENT 'line 13: Error: empty COMMUNITY parameter' |
| SAVECHECKAGENT 'line 14: Error: example config COMMUNITY not properly configured' |
| SAVECHECKAGENT 'line 15: Error: community name too long' |
| SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", 0.0.0.0/0.0.0.0> => "t404e"' |
| SAVECHECKAGENT '<"c405a", 0.0.0.0/0.0.0.0> => "t405a"' |
| SAVECHECKAGENT '<"c405b", 10.0.0.0/255.255.255.255> => "t405b"' |
| SAVECHECKAGENT '<"c405c", 10.0.0.0/255.0.0.0> => "t405c"' |
| SAVECHECKAGENT 'line 20: Error: bad mask length' |
| SAVECHECKAGENT 'line 21: Error: bad mask length' |
| SAVECHECKAGENT '<"c405f", 10.0.0.0/255.0.0.0> => "t405f"' |
| SAVECHECKAGENT 'line 23: Error: bad mask' |
| SAVECHECKAGENT 'line 24: Error: bad mask' |
| SAVECHECKAGENT 'line 25: Error: source/mask mismatch' |
| SAVECHECKAGENT '<"c405j", 0.0.0.0/255.255.255.255> => "t405j"' |
| SAVECHECKAGENT '<"c405k", 0.0.0.0/0.0.0.0> => "t405k"' |
| SAVECHECKAGENT '<"c405l", 0.0.0.0/0.0.0.0> => "t405l"' |
| SAVECHECKAGENT '<"c406a", 255.255.255.255/255.255.255.255> => "t406a"' |
| SAVECHECKAGENT 'line 30: Error:' # msg from h_strerror so it varies |
| SAVECHECKAGENT 'line 31: Error:' # msg from h_strerror so it varies |
| |
| CHECKAGENT '<"c408a"' |
| if [ "$snmp_last_test_result" -eq 0 ] ; then |
| CHECKAGENT 'line 32: Error:' |
| if [ "$snmp_last_test_result" -ne 1 ] ; then |
| return_value=1 |
| FINISHED |
| fi |
| elif [ "$snmp_last_test_result" -ne 1 ] ; then |
| return_value=1 |
| FINISHED |
| fi |
| |
| CHECKAGENT '<"c408b"' |
| if [ "$snmp_last_test_result" -eq 0 ] ; then |
| CHECKAGENT 'line 33: Error:' |
| if [ "$snmp_last_test_result" -ne 1 ] ; then |
| return_value=1 |
| fi |
| elif [ "$snmp_last_test_result" -ne 1 ] ; then |
| return_value=1 |
| fi |
| |
| FINISHED |