]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#42, !103] General clean up
authorThomas Markwalder <tmark@isc.org>
Tue, 6 Nov 2018 16:22:57 +0000 (11:22 -0500)
committerThomas Markwalder <tmark@isc.org>
Tue, 6 Nov 2018 16:22:57 +0000 (11:22 -0500)
src/bin/dhcp6/dhcp6_parser.cc
src/lib/dhcp/iface_mgr.cc
src/lib/dhcp/iface_mgr.h
src/lib/dhcp/packet_queue.h
src/lib/dhcp/packet_queue_mgr.h
src/lib/dhcp/packet_queue_mgr4.h
src/lib/dhcp/packet_queue_mgr6.h
src/lib/dhcpsrv/parsers/queue_control_parser.h
src/lib/dhcpsrv/srv_config.h

index 2b9a294983ded765e8190bcbd50a910704411ae2..8740789766f687e1460a80dd67512fc2b63a816d 100644 (file)
@@ -3039,7 +3039,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 552:
-#line 1926 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1928 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3047,7 +3047,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 553:
-#line 1928 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1930 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr qc = yystack_[0].value.as< ElementPtr > ();
     ctx.stack_.back()->set("queue-control", qc);
@@ -3065,7 +3065,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 554:
-#line 1944 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1946 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
@@ -3076,7 +3076,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 555:
-#line 1949 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1951 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3087,7 +3087,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 556:
-#line 1956 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1958 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3097,7 +3097,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 557:
-#line 1960 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1962 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3107,7 +3107,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 579:
-#line 1991 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1993 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
@@ -3116,7 +3116,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 580:
-#line 1996 "dhcp6_parser.yy" // lalr1.cc:859
+#line 1998 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3124,7 +3124,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 581:
-#line 1998 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2000 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
@@ -3134,7 +3134,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 582:
-#line 2004 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2006 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3142,7 +3142,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 583:
-#line 2006 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2008 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
@@ -3152,7 +3152,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 584:
-#line 2012 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2014 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
@@ -3161,7 +3161,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 585:
-#line 2017 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2019 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3169,7 +3169,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 586:
-#line 2019 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2021 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
@@ -3179,7 +3179,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 587:
-#line 2025 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2027 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
@@ -3188,7 +3188,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 588:
-#line 2030 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2032 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
@@ -3197,7 +3197,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 589:
-#line 2035 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2037 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
@@ -3205,7 +3205,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 590:
-#line 2037 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2039 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3214,19 +3214,19 @@ namespace isc { namespace dhcp {
     break;
 
   case 591:
-#line 2043 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2045 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 3220 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 592:
-#line 2044 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2046 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 3226 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 593:
-#line 2047 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2049 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
@@ -3234,7 +3234,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 594:
-#line 2049 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2051 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -3244,7 +3244,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 595:
-#line 2055 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2057 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-include-fqdn", b);
@@ -3253,7 +3253,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 596:
-#line 2060 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2062 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
@@ -3262,7 +3262,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 597:
-#line 2065 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2067 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
@@ -3271,7 +3271,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 598:
-#line 2070 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2072 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
@@ -3279,7 +3279,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 599:
-#line 2072 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2074 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3288,7 +3288,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 600:
-#line 2078 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2080 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3296,7 +3296,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 601:
-#line 2081 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2083 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3304,7 +3304,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 602:
-#line 2084 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2086 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3312,7 +3312,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 603:
-#line 2087 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2089 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
@@ -3320,7 +3320,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 604:
-#line 2090 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2092 "dhcp6_parser.yy" // lalr1.cc:859
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
@@ -3329,7 +3329,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 605:
-#line 2096 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2098 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3337,7 +3337,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 606:
-#line 2098 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2100 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
@@ -3347,7 +3347,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 607:
-#line 2104 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2106 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3355,7 +3355,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 608:
-#line 2106 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2108 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
@@ -3365,7 +3365,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 609:
-#line 2112 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2114 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3373,7 +3373,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 610:
-#line 2114 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2116 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
@@ -3383,7 +3383,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 611:
-#line 2122 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2124 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3391,7 +3391,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 612:
-#line 2124 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2126 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3400,7 +3400,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 613:
-#line 2129 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2131 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3408,7 +3408,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 614:
-#line 2131 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2133 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3417,7 +3417,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 615:
-#line 2136 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2138 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3425,7 +3425,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 616:
-#line 2138 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2140 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3434,7 +3434,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 617:
-#line 2145 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2147 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3444,7 +3444,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 618:
-#line 2149 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2151 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
@@ -3452,7 +3452,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 619:
-#line 2154 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2156 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-control", i);
@@ -3463,7 +3463,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 620:
-#line 2159 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2161 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // No config control params are required
     ctx.stack_.pop_back();
@@ -3473,7 +3473,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 621:
-#line 2165 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2167 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3483,7 +3483,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 622:
-#line 2169 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2171 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // No config_control params are required
     // parsing completed
@@ -3492,7 +3492,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 627:
-#line 2184 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2186 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-databases", l);
@@ -3503,7 +3503,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 628:
-#line 2189 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2191 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3512,7 +3512,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 629:
-#line 2199 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2201 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
@@ -3523,7 +3523,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 630:
-#line 2204 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2206 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3532,7 +3532,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 631:
-#line 2209 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2211 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3542,7 +3542,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 632:
-#line 2213 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2215 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // parsing completed
 }
@@ -3550,7 +3550,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 636:
-#line 2229 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2231 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
@@ -3561,7 +3561,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 637:
-#line 2234 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2236 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3570,7 +3570,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 640:
-#line 2246 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2248 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
@@ -3580,7 +3580,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 641:
-#line 2250 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2252 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
@@ -3588,7 +3588,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 651:
-#line 2267 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2269 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
@@ -3597,7 +3597,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 652:
-#line 2272 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2274 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3605,7 +3605,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 653:
-#line 2274 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2276 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
@@ -3615,7 +3615,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 654:
-#line 2280 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2282 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
@@ -3626,7 +3626,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 655:
-#line 2285 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2287 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3635,7 +3635,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 658:
-#line 2294 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2296 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -3645,7 +3645,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 659:
-#line 2298 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2300 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
@@ -3653,7 +3653,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 666:
-#line 2312 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2314 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3661,7 +3661,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 667:
-#line 2314 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2316 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
@@ -3671,7 +3671,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 668:
-#line 2320 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2322 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
@@ -3680,7 +3680,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 669:
-#line 2325 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2327 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
@@ -3689,7 +3689,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 670:
-#line 2330 "dhcp6_parser.yy" // lalr1.cc:859
+#line 2332 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
@@ -4963,19 +4963,19 @@ namespace isc { namespace dhcp {
     1835,  1836,  1837,  1838,  1839,  1840,  1841,  1842,  1845,  1845,
     1852,  1853,  1854,  1857,  1862,  1862,  1870,  1875,  1882,  1889,
     1889,  1899,  1900,  1903,  1904,  1905,  1906,  1907,  1910,  1910,
-    1918,  1918,  1926,  1926,  1944,  1944,  1956,  1956,  1966,  1967,
-    1970,  1971,  1972,  1973,  1974,  1975,  1976,  1977,  1978,  1979,
-    1980,  1981,  1982,  1983,  1984,  1985,  1986,  1987,  1988,  1991,
-    1996,  1996,  2004,  2004,  2012,  2017,  2017,  2025,  2030,  2035,
-    2035,  2043,  2044,  2047,  2047,  2055,  2060,  2065,  2070,  2070,
-    2078,  2081,  2084,  2087,  2090,  2096,  2096,  2104,  2104,  2112,
-    2112,  2122,  2122,  2129,  2129,  2136,  2136,  2145,  2145,  2154,
-    2154,  2165,  2165,  2175,  2176,  2180,  2181,  2184,  2184,  2199,
-    2199,  2209,  2209,  2220,  2221,  2225,  2229,  2229,  2241,  2242,
-    2246,  2246,  2254,  2255,  2258,  2259,  2260,  2261,  2262,  2263,
-    2264,  2267,  2272,  2272,  2280,  2280,  2290,  2291,  2294,  2294,
-    2302,  2303,  2306,  2307,  2308,  2309,  2312,  2312,  2320,  2325,
-    2330
+    1918,  1918,  1928,  1928,  1946,  1946,  1958,  1958,  1968,  1969,
+    1972,  1973,  1974,  1975,  1976,  1977,  1978,  1979,  1980,  1981,
+    1982,  1983,  1984,  1985,  1986,  1987,  1988,  1989,  1990,  1993,
+    1998,  1998,  2006,  2006,  2014,  2019,  2019,  2027,  2032,  2037,
+    2037,  2045,  2046,  2049,  2049,  2057,  2062,  2067,  2072,  2072,
+    2080,  2083,  2086,  2089,  2092,  2098,  2098,  2106,  2106,  2114,
+    2114,  2124,  2124,  2131,  2131,  2138,  2138,  2147,  2147,  2156,
+    2156,  2167,  2167,  2177,  2178,  2182,  2183,  2186,  2186,  2201,
+    2201,  2211,  2211,  2222,  2223,  2227,  2231,  2231,  2243,  2244,
+    2248,  2248,  2256,  2257,  2260,  2261,  2262,  2263,  2264,  2265,
+    2266,  2269,  2274,  2274,  2282,  2282,  2292,  2293,  2296,  2296,
+    2304,  2305,  2308,  2309,  2310,  2311,  2314,  2314,  2322,  2327,
+    2332
   };
 
   // Print the state stack on the debug stream.
@@ -5011,7 +5011,7 @@ namespace isc { namespace dhcp {
 #line 14 "dhcp6_parser.yy" // lalr1.cc:1167
 } } // isc::dhcp
 #line 5014 "dhcp6_parser.cc" // lalr1.cc:1167
-#line 2335 "dhcp6_parser.yy" // lalr1.cc:1168
+#line 2337 "dhcp6_parser.yy" // lalr1.cc:1168
 
 
 void
index b924021c269be3827fbbac2e534279e6a5b96814..896a034e7b1e7a1fa42bbe43b78288b3e4c7837f 100644 (file)
@@ -296,13 +296,8 @@ void IfaceMgr::stopDHCPReceiver() {
     }
     receiver_error_ = "no error";
 
-    /* if(getPacketQueue4())*/ {
-        getPacketQueue4()->clear();
-    }
-
-    /* if (getPacketQueue6()) */ {
-        getPacketQueue4()->clear();
-    }
+    getPacketQueue4()->clear();
+    getPacketQueue4()->clear();
 }
 
 
index 36e6440b81a724f52a134a5b698e855d677b0115..c5648589a9dc00f6b37ef586fd10d96c4f597dbe 100644 (file)
@@ -1035,9 +1035,9 @@ public:
     /// @brief DHCPv4 receiver packet queue.
     ///
     /// Incoming packets are read by the receiver thread and
-    /// added to this queue. @c receive4() dequeues and 
-    /// returns them. 
-    PacketQueue4Ptr getPacketQueue4() { 
+    /// added to this queue. @c receive4() dequeues and
+    /// returns them.
+    PacketQueue4Ptr getPacketQueue4() {
         return (PacketQueueMgr4::instance().getPacketQueue());
     }
 
@@ -1060,8 +1060,7 @@ public:
     ///
     /// @throw Unexpected if the thread already exists.
     void startDHCPReceiver(const uint16_t family);
-
-    /// @brief Stops the DHCP packet receiver.
+/// @brief Stops the DHCP packet receiver.
     ///
     /// Stops the receiver and delete the dedicated thread.
     void stopDHCPReceiver();
@@ -1186,7 +1185,7 @@ private:
     /// Loops forever reading DHCPv4 packets from the interface sockets
     /// and adds them to the packet queue.  It monitors the "terminate"
     /// watch socket, and exits if it is marked ready.  This is method
-    /// is used as the worker function in the thread created by @c 
+    /// is used as the worker function in the thread created by @c
     /// startDHCP4Receiver().  It currently uses select() to monitor
     /// socket readiness.  If the select errors out (other than EINTR),
     /// it marks the "error" watch socket as ready.
@@ -1195,11 +1194,11 @@ private:
     /// @brief Receives a single DHCPv4 packet from an interface socket
     ///
     /// Called by @c receiveDHPC4Packets when a socket fd is flagged as
-    /// ready. It uses the DHCPv4 packet filter to receive a single packet 
-    /// from the given interface socket, adds it to the packet queue, and 
+    /// ready. It uses the DHCPv4 packet filter to receive a single packet
+    /// from the given interface socket, adds it to the packet queue, and
     /// marks the "receive" watch socket ready. If an error occurs during
     /// the read, the "error" watch socket is marked ready.
-    /// 
+    ///
     /// @param iface interface
     /// @param socket_info structure holding socket information
     void receiveDHCP4Packet(Iface& iface, const SocketInfo& socket_info);
@@ -1209,7 +1208,7 @@ private:
     /// Loops forever reading DHCPv6 packets from the interface sockets
     /// and adds them to the packet queue.  It monitors the "terminate"
     /// watch socket, and exits if it is marked ready.  This is method
-    /// is used as the worker function in the thread created by @c 
+    /// is used as the worker function in the thread created by @c
     /// startDHCP6Receiver().  It currently uses select() to monitor
     /// socket readiness.  If the select errors out (other than EINTR),
     /// it marks the "error" watch socket as ready.
@@ -1218,11 +1217,11 @@ private:
     /// @brief Receives a single DHCPv6 packet from an interface socket
     ///
     /// Called by @c receiveDHPC6Packets when a socket fd is flagged as
-    /// ready. It uses the DHCPv6 packet filter to receive a single packet 
-    /// from the given interface socket, adds it to the packet queue, and 
+    /// ready. It uses the DHCPv6 packet filter to receive a single packet
+    /// from the given interface socket, adds it to the packet queue, and
     /// marks the "receive" watch socket ready. If an error occurs during
     /// the read, the "error" watch socket is marked ready.
-    /// 
+    ///
     /// @param iface interface
     /// @param socket_info structure holding socket information
     void receiveDHCP6Packet(const SocketInfo& socket_info);
@@ -1256,7 +1255,7 @@ private:
     std::string receiver_error_;
 
     /// @brief DHCP packet receive error watch socket.
-    /// Marked as ready when the DHCP packet receiver experiences 
+    /// Marked as ready when the DHCP packet receiver experiences
     /// an I/O error.
     isc::util::WatchSocket error_watch_;
 
index fc127c763255bba23125eabd0dc5dea2296926d1..997efeefe244a09f9e95b8f486b502959b0b7ca1 100644 (file)
@@ -36,17 +36,22 @@ enum class QueueEnd {
 };
 
 /// @brief Interface for managing a queue of inbound DHCP packets
-template<typename PacketTypePtr> 
+///
+/// This class serves as the abstract interface for packet queue
+/// implementations which may be used by @c IfaceMgr to store
+/// inbound packets until they are a dequeued for processing.
+///
+template<typename PacketTypePtr>
 class PacketQueue {
 public:
 
     /// @brief Constructor
     ///
-    /// @param queue_type name of this queue's implementation type. 
+    /// @param queue_type name of this queue's implementation type.
     /// Typically this is assigned by the factory that creates the
     /// queue.  It is the logical name used to register queue
     /// implementations.
-    PacketQueue(const std::string& queue_type) 
+    PacketQueue(const std::string& queue_type)
         :  queue_type_(queue_type) {}
 
     /// Virtual destructor
@@ -56,9 +61,9 @@ public:
     ///
     /// Calls @c dropPacket to determine if the packet should be queued
     /// or dropped.  If it should be queued it is added to the end of the
-    /// specified by the "to" parameter. 
+    /// specified by the "to" parameter.
     ///
-    /// @param packet packet to enqueue 
+    /// @param packet packet to enqueue
     /// @param source socket the packet came from - this can be
     /// @param to end of the queue from which to remove packet(s).
     /// Defaults to BACK.
@@ -92,7 +97,7 @@ public:
     /// This function is called at the beginning of @enqueuePacket and
     /// provides an opportunity to examine the packet and its source
     /// and decide whether it should be dropped or added to the queue.
-    /// Derivations are expected to provide implementations based on 
+    /// Derivations are expected to provide implementations based on
     /// their own requirements.  Bear in mind that the packet has NOT
     /// been unpacked at this point. The default implementation simply
     /// returns false.
@@ -102,7 +107,7 @@ public:
     ///
     /// @return true if the packet should be dropped, false if it should be
     /// kept.
-    virtual bool dropPacket(PacketTypePtr /* packet */, 
+    virtual bool dropPacket(PacketTypePtr /* packet */,
                             const SocketInfo& /* source */) {
         return (false);
     }
@@ -112,8 +117,8 @@ public:
     /// This function is called at the beginning of @c dequeuPacket and
     /// provides an opportunity to examine and discard packets from
     /// the queue prior to dequeuing the next packet to be
-    /// processed.  Derivations are expected to provide implementations 
-    /// based on their own requirements.  The default implemenation is to 
+    /// processed.  Derivations are expected to provide implementations
+    /// based on their own requirements.  The default implemenation is to
     /// to simply returns without skipping any packets.
     ///
     /// @param from end of the queue from which packets should discarded
@@ -121,7 +126,7 @@ public:
     ///
     /// @return The number of packets discarded.
     virtual int eatPackets(const QueueEnd& /* from */) {
-        return (0); 
+        return (0);
     }
 
     /// @brief Pushes a packet onto the queue
@@ -140,9 +145,9 @@ public:
     /// @brief Gets the packet currently at one end of the queue
     ///
     /// Returns a pointer the packet at the specified end of the
-    /// queue without dequeuing it.  
+    /// queue without dequeuing it.
     ///
-    /// @return A pointer to packet, or an empty pointer if the 
+    /// @return A pointer to packet, or an empty pointer if the
     /// queue is empty.
     virtual const PacketTypePtr peek(const QueueEnd& from=QueueEnd::FRONT) const = 0;
 
@@ -156,12 +161,26 @@ public:
     /// @brief Discards all packets currently in the buffer.
     virtual void clear() = 0;
 
+    /// @brief Fetches operational information about the current state of the queue
+    ///
+    /// Creates and returns an ElementPtr containing a single entry,
+    /// "queue-type".  Derivations are expected to call this method first
+    /// and then add their own values.  Since implementations may vary
+    /// widely on data of interest, this is structured as an ElementPtr
+    /// for broad latitude.
+    ///
+    /// @return an ElementPtr containing elements for values of interest
     virtual data::ElementPtr getInfo() {
        data::ElementPtr info = data::Element::createMap();
        info->set("queue-type", data::Element::create(queue_type_));
        return(info);
     }
 
+    /// @brief Fetches a JSON string representation of queue operational info
+    ///
+    /// This method calls @c getInfo() and then converts that into JSON text.
+    ///
+    /// @return string of JSON text
     virtual std::string getInfoStr() {
        data::ElementPtr info = getInfo();
        std::ostringstream os;
@@ -169,25 +188,30 @@ public:
        return (os.str());
     }
 
-    /// @brief 
+    /// @return Fetches the logical name of the type of this queue.
     std::string getQueueType() {
         return (queue_type_);
     };
 
 private:
-    /// @brief Name of the this queue's implementation type. 
+    /// @brief Logcial name of the this queue's implementation type.
     std::string queue_type_;
-    
+
 };
 
-/// @brief Defines pointer to the DHCPv4 queue interface used at the application level. 
+/// @brief Defines pointer to the DHCPv4 queue interface used at the application level.
+/// This is the type understood by IfaceMgr and the type that should be returned by
+/// DHCPv4 packet queue factories.
 typedef boost::shared_ptr<PacketQueue<Pkt4Ptr>> PacketQueue4Ptr;
 
-/// @brief Defines pointer to the DHCPv6 queue interface used at the application level. 
+/// @brief Defines pointer to the DHCPv6 queue interface used at the application level.
+/// This is the type understood by IfaceMgr and the type that should be returned by
+/// DHCPv6 packet queue factories.
 typedef boost::shared_ptr<PacketQueue<Pkt6Ptr>> PacketQueue6Ptr;
 
+
 /// @brief Provides an abstract ring-buffer implementation of the PacketQueue interface.
-template<typename PacketTypePtr> 
+template<typename PacketTypePtr>
 class PacketQueueRing : public PacketQueue<PacketTypePtr> {
 public:
     static const size_t MIN_RING_CAPACITY = 5;
@@ -196,7 +220,7 @@ public:
     ///
     /// @param queue_capacity maximum number of packets the queue can hold
     PacketQueueRing(const std::string& queue_type, size_t capacity)
-        : PacketQueue<PacketTypePtr>(queue_type) { 
+        : PacketQueue<PacketTypePtr>(queue_type) {
         queue_.set_capacity(capacity);
     }
 
@@ -241,9 +265,9 @@ public:
     /// @brief Gets the packet currently at one end of the queue
     ///
     /// Returns a pointer the packet at the specified end of the
-    /// queue without dequeuing it.  
+    /// queue without dequeuing it.
     ///
-    /// @return A pointer to packet, or an empty pointer if the 
+    /// @return A pointer to packet, or an empty pointer if the
     /// queue is empty.
     virtual const PacketTypePtr peek(const QueueEnd& from=QueueEnd::FRONT) const {
         PacketTypePtr packet;
@@ -257,7 +281,7 @@ public:
     /// @brief Returns True if the queue is empty.
     virtual bool empty() const {
         return(queue_.empty());
-    } 
+    }
 
     /// @brief Returns the maximum number of packets allowed in the buffer.
     virtual size_t getCapacity() const {
@@ -272,8 +296,8 @@ public:
     /// @throw BadValue if capacity is too low.
     virtual void setCapacity(size_t capacity) {
         if (capacity < MIN_RING_CAPACITY) {
-            isc_throw(BadValue, "Queue capacity of " << capacity 
-                      << " is invalid.  It must be at least " 
+            isc_throw(BadValue, "Queue capacity of " << capacity
+                      << " is invalid.  It must be at least "
                       << MIN_RING_CAPACITY);
         }
 
@@ -291,6 +315,7 @@ public:
         queue_.clear();
     }
 
+    /// @brief Fetches pertinent information
     virtual data::ElementPtr getInfo() {
        data::ElementPtr info = PacketQueue<PacketTypePtr>::getInfo();
        info->set("capacity", data::Element::create(static_cast<int64_t>(getCapacity())));
@@ -305,44 +330,42 @@ private:
 };
 
 
-/// @brief Default DHCPv4 packet queue buffer implementation
+/// @brief DHCPv4 packet queue buffer implementation
+///
+/// This implementation does not (currently) add any drop
+/// or packet skip logic, it operates as a verbatim ring
+/// queue for DHCPv4 packets.
+///
 class PacketQueueRing4 : public PacketQueueRing<Pkt4Ptr> {
 public:
-    static const size_t DEFAULT_RING_CAPACITY = 500;
-
     /// @brief Constructor
     ///
     /// @param capacity maximum number of packets the queue can hold
-    PacketQueueRing4(const std::string& queue_type, size_t capacity=DEFAULT_RING_CAPACITY) 
+    PacketQueueRing4(const std::string& queue_type, size_t capacity)
         : PacketQueueRing(queue_type, capacity) {
     };
 
     /// @brief virtual Destructor
     virtual ~PacketQueueRing4(){}
-
-    virtual void useDefaults(){
-        setCapacity(DEFAULT_RING_CAPACITY);
-    }
 };
 
-/// @brief Default DHCPv6 packet queue buffer implementation
+/// @brief DHCPv6 packet queue buffer implementation
+///
+/// This implementation does not (currently) add any drop
+/// or packet skip logic, it operates as a verbatim ring
+/// queue for DHCPv6 packets.
+///
 class PacketQueueRing6 : public PacketQueueRing<Pkt6Ptr> {
 public:
-    static const size_t DEFAULT_RING_CAPACITY = 500;
-
     /// @brief Constructor
     ///
     /// @param capacity maximum number of packets the queue can hold
-    PacketQueueRing6(const std::string& queue_type, size_t capacity=DEFAULT_RING_CAPACITY)
+    PacketQueueRing6(const std::string& queue_type, size_t capacity)
         : PacketQueueRing(queue_type, capacity) {
     };
 
     /// @brief virtual Destructor
     virtual ~PacketQueueRing6(){}
-
-    virtual void useDefaults() {
-        setCapacity(DEFAULT_RING_CAPACITY);
-    }
 };
 
 
index d1ca10539108ba3f96729cf242a46503528b62ab..02d7d917a9daddda5c82b176046fec03ea944360 100644 (file)
@@ -21,7 +21,7 @@ namespace dhcp {
 
 /// @brief Invalid Queue type exception
 ///
-/// Thrown when a packet queue manager doesn't recognize the type of the queue. 
+/// Thrown when a packet queue manager doesn't recognize the type of the queue.
 class InvalidQueueType : public Exception {
 public:
     InvalidQueueType(const char* file, size_t line, const char* what) :
@@ -30,43 +30,11 @@ public:
 
 /// @brief Packet Queue Managers (PQM).
 ///
-
-/// @todo TKM rewrite this...
-
-/// Each Kea server supporting Configuration Backend feature implements
-/// a "manager" class which holds information about supported and
-/// configured backends and provides access to the backends. This is
-/// similar to @c HostMgr and @c LeaseMgr singletons being used by the
-/// DHCP servers.
-///
-/// The Config Backend Managers are typically implemented as singletons
-/// which can be accessed from any place within the server code. This
-/// includes server configuration, data fetching during normal server
-/// operation and data management, including processing of control
-/// commands implemented within hooks libraries.
-///
-/// The @c BaseConfigBackendMgr is a base class for all PQMs implemented
-/// for respective Kea servers. It includes mechanisms to register config
-/// backend factory functions and to create instances of the backends using
-/// those factory functions as a result of server configuration. The mechanism
-/// of factory functions registration is useful in cases when the config
-/// backend is implemented within the hook library. Such hook library
-/// registers factory function in its @c load function and the server
-/// simply calls this function to create the instance of this backend when
-/// instructed to do so via configuration. Similar mechanism exists in
-/// DHCP @c HostMgr.
-///
-/// Unlike @c HostMgr, the PQMs do not directly expose API to fetch and
-/// manipulate the data in the database. This is done via, so called,
-/// Configuration Backends Pools. See @c BaseConfigBackendPool for
-/// details. The @c BaseConfigBackendMgr is provided with the pool type
-/// via class template parameter. Respective PQM implementations
-/// use their own pools, which provide APIs appropriate for those
-/// implementations.
+/// Base class to manage the registry of packet queue implemenations
+/// and the creation of and access to the current packet queue.
 ///
-/// @tparam ConfgBackendPoolType Type of the configuration backend pool
-/// to be used by the manager. It must derive from @c BaseConfigBackendPool
-/// template class.
+/// @tparam PacktQueueTypePtr Base type of packet queues managed by
+/// the manager (e.g. PacketQueue4Ptr, PacketQueue6Ptr).
 template<typename PacketQueueTypePtr>
 class PacketQueueMgr {
 public:
@@ -128,10 +96,6 @@ public:
         // If it's there remove it
         if (index != factories_.end()) {
             factories_.erase(index);
-        // @todo What do we do here, if we only have one queue?
-        // I think we don't care, as we should be reloading/reconfiging...
-        // It may be that PQM doesn't retain the instance at all?
-        //  pool_->delAllBackends(db_type);
             return (true);
 
         }
@@ -152,7 +116,7 @@ public:
     /// replaced unless the new queue is successfully created.
     ///
     /// @throw InvalidQueueParameter if parameters is not map that contains
-    /// "queue-type", InvalidQueueType if the queue type requested is not 
+    /// "queue-type", InvalidQueueType if the queue type requested is not
     /// supported.
     /// @throw Unexpected if the backend factory function returned NULL.
     void createPacketQueue(data::ConstElementPtr parameters) {
index 848ad99b8431d256ed3cdaecf886a274c73c9fa9..dc1a26bb77ec2270b5d0f1e2fcb25d2fac2a4b28 100644 (file)
@@ -17,8 +17,8 @@ namespace dhcp {
 /// @brief Packet Queue Manager for DHPCv4 servers.
 ///
 /// Implements the "manager" class which holds information about the
-/// supported and packet queues and provides management of the current
-/// queue instance. 
+/// supported DHCPv4 packet queue implementations and provides management
+/// of the current queue instance.
 ///
 /// It is implemented as a singleton that can be accessed from any place
 /// within the server code. This includes server configuration, data
@@ -46,8 +46,8 @@ public:
 
     /// @brief Returns a sole instance of the @c PacketQueueMgr4.
     ///
-    /// This method is used to retrieve the instance of the of the 
-    /// @c PacketQueueMgr4 created by the @c create method. If the 
+    /// This method is used to retrieve the instance of the of the
+    /// @c PacketQueueMgr4 created by the @c create method. If the
     /// instance doesn't exist yet, it is created using the @c create
     /// method.
     static PacketQueueMgr4& instance();
@@ -55,10 +55,11 @@ public:
 private:
     /// @brief Private constructor.
     ///
-    /// @todo probably will add the open source/default impl(s)
+    /// It registers a default factory for DHCPv4 queues and creates
+    /// an default DHCPv4 packet queue.
     PacketQueueMgr4();
 
-    /// @brief Returns a pointer to the currently used instance of the
+    /// @brief Returns a pointer to the currently instance of the
     /// @c PacketQueueMgr4.
     static boost::scoped_ptr<PacketQueueMgr4>& getPacketQueueMgr4Ptr();
 };
index 8fe76404eedcdaa6f6fc8f03c0cba350d05bdc65..fb9d4e505748dc93696ac1cbe8c6a7fa03f09770 100644 (file)
@@ -17,8 +17,8 @@ namespace dhcp {
 /// @brief Packet Queue Manager for DHPCv6 servers.
 ///
 /// Implements the "manager" class which holds information about the
-/// supported and packet queues and provides management of the current
-/// queue instance. 
+/// supported DHCPv6 packet queue implementations and provides management
+/// of the current queue instance.
 ///
 /// It is implemented as a singleton that can be accessed from any place
 /// within the server code. This includes server configuration, data
@@ -56,7 +56,8 @@ public:
 private:
     /// @brief Private constructor.
     ///
-    /// @todo probably will add the open source/default impl(s)
+    /// It registers a default factory for DHCPv6 queues and creates
+    /// an default DHCPv6 packet queue.
     PacketQueueMgr6();
 
     /// @brief Returns a pointer to the currently used instance of the
index e284bc7ae3a56de7ae07a0375a3c30b71d0a77f7..0150b96eef5b7a9a2bd662870e5aca0bc80af5ea 100644 (file)
@@ -18,6 +18,9 @@ namespace dhcp {
 ///
 /// This parser parses the "queue-control" parameter which holds the
 /// the configurable parameters that tailor DHCP packet queue behavior.
+/// Currently "queue-control" is treated as a map of arbitrary values,
+/// with only one required value, "queue-type". This was done to
+/// provide latitude for differing queue implementations.
 ///
 /// This parser is used in both DHCPv4 and DHCPv6. Derived parsers
 /// are not needed.
index 0f74e53b3c9d14b1d3971ca6d08a11f9c0861a10..123834ff7b263ff8f41c9bb2ad7f0a4ad4999750 100644 (file)
@@ -361,7 +361,7 @@ public:
     }
 
     /// @brief Returns queue control information
-    /// @return pointer to a queue control information
+    /// @return pointer to the queue control information
     const isc::data::ConstElementPtr getQueueControlInfo() const {
         return (queue_control_);
     }