Jeremie Courreges-Anglas <j...@wxcvbn.org> writes: > In icmp6_errcount() we could save a few function calls but I preferred > to keep the conversion as mechanical as possible.
Initial diff committed. The diff below should save a few bytes. ok? Index: icmp6.c =================================================================== RCS file: /d/cvs/src/sys/netinet6/icmp6.c,v retrieving revision 1.200 diff -u -p -p -u -r1.200 icmp6.c --- icmp6.c 9 Feb 2017 15:23:35 -0000 1.200 +++ icmp6.c 9 Feb 2017 18:55:52 -0000 @@ -156,57 +156,60 @@ icmp6_init(void) void icmp6_errcount(int type, int code) { + enum icmp6stat_counters c = icp6s_ounknown; + switch (type) { case ICMP6_DST_UNREACH: switch (code) { case ICMP6_DST_UNREACH_NOROUTE: - icmp6stat_inc(icp6s_odst_unreach_noroute); - return; + c = icp6s_odst_unreach_noroute; + break; case ICMP6_DST_UNREACH_ADMIN: - icmp6stat_inc(icp6s_odst_unreach_admin); - return; + c = icp6s_odst_unreach_admin; + break; case ICMP6_DST_UNREACH_BEYONDSCOPE: - icmp6stat_inc(icp6s_odst_unreach_beyondscope); - return; + c = icp6s_odst_unreach_beyondscope; + break; case ICMP6_DST_UNREACH_ADDR: - icmp6stat_inc(icp6s_odst_unreach_addr); - return; + c = icp6s_odst_unreach_addr; + break; case ICMP6_DST_UNREACH_NOPORT: - icmp6stat_inc(icp6s_odst_unreach_noport); - return; + c = icp6s_odst_unreach_noport; + break; } break; case ICMP6_PACKET_TOO_BIG: - icmp6stat_inc(icp6s_opacket_too_big); - return; + c = icp6s_opacket_too_big; + break; case ICMP6_TIME_EXCEEDED: switch (code) { case ICMP6_TIME_EXCEED_TRANSIT: - icmp6stat_inc(icp6s_otime_exceed_transit); - return; + c = icp6s_otime_exceed_transit; + break; case ICMP6_TIME_EXCEED_REASSEMBLY: - icmp6stat_inc(icp6s_otime_exceed_reassembly); - return; + c = icp6s_otime_exceed_reassembly; + break; } break; case ICMP6_PARAM_PROB: switch (code) { case ICMP6_PARAMPROB_HEADER: - icmp6stat_inc(icp6s_oparamprob_header); - return; + c = icp6s_oparamprob_header; + break; case ICMP6_PARAMPROB_NEXTHEADER: - icmp6stat_inc(icp6s_oparamprob_nextheader); - return; + c = icp6s_oparamprob_nextheader; + break; case ICMP6_PARAMPROB_OPTION: - icmp6stat_inc(icp6s_oparamprob_option); - return; + c = icp6s_oparamprob_option; + break; } break; case ND_REDIRECT: - icmp6stat_inc(icp6s_oredirect); - return; + c = icp6s_oredirect; + break; } - icmp6stat_inc(icp6s_ounknown); + + icmp6stat_inc(c); } /* -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE