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

Reply via email to