/**
* YaCyQoSFilter
* Copyright 2015 by Burkhard Buelte
* First released 26.04.2015 at http://yacy.net
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program in the file lgpl21.txt
* If not, see <http://www.gnu.org/licenses/>.
*/
package net.yacy.http.servlets;
import javax.servlet.ServletRequest;
import net.yacy.cora.protocol.Domains;
import org.eclipse.jetty.servlets.QoSFilter;
/**
* Quality of Service Filter based on Jetty QosFilter
* to prioritize requests from localhost
* The intention is to improve the responsivness of web/user interface for the local admin
* To activate this filter uncomment the predefined filter setting in web.xml
*/
public class YaCyQoSFilter extends QoSFilter {
/**
* set priority for localhost to max
* @param request
* @return priority
*/
@Override
protected int getPriority(ServletRequest request) {
if (request.getServerName().equalsIgnoreCase(Domains.LOCALHOST)) {
return 10; // highest priority for "localhost"
} else if (Domains.isLocalhost(request.getRemoteHost())) {
return 9;
} else {
return super.getPriority(request); // standard: authenticated = 2, other = 1 or 0
}
}
}