Code Duplication    Length = 35-39 lines in 2 locations

app/code/community/Nexcessnet/Turpentine/Model/Varnish/Configurator/Abstract.php 2 locations

@@ 887-925 (lines=39) @@
884
     *
885
     * @return string
886
     */
887
    protected function _vcl_sub_maintenance_allowed_ips() {
888
        if (( ! $this->_getDebugIps()) || ! Mage::getStoreConfig('turpentine_vcl/maintenance/custom_vcl_synth')) {
889
            return false;
890
        }
891
892
        switch (Mage::getStoreConfig('turpentine_varnish/servers/version')) {
893
            case 4.0:
894
            case 4.1:
895
                $tpl = <<<EOS
896
if (req.http.X-Forwarded-For) {
897
    if (req.http.X-Forwarded-For !~ "{{debug_ips}}") {
898
        return (synth(999, "Maintenance mode"));
899
    }
900
}
901
else {
902
    if (client.ip !~ debug_acl) {
903
        return (synth(999, "Maintenance mode"));
904
    }
905
}
906
907
EOS;
908
                break;
909
            default:
910
                $tpl = <<<EOS
911
if (req.http.X-Forwarded-For) {
912
    if(req.http.X-Forwarded-For !~ "{{debug_ips}}") {
913
        error 503;
914
    }
915
} else {
916
    if (client.ip !~ debug_acl) {
917
        error 503;
918
    }
919
}
920
EOS;
921
        }
922
923
        return $this->_formatTemplate($tpl, array(
924
            'debug_ips' => Mage::getStoreConfig('dev/restrict/allow_ips') ));
925
    }
926
927
    /**
928
     * When using Varnish on port 80 and Hitch listen on port 443 for HTTPS, the fix will set X-Forwarded-Proto to HTTPS to prevent redirect loop.
@@ 1007-1041 (lines=35) @@
1004
     *
1005
     * @return string
1006
     */
1007
    protected function _vcl_sub_synth()
1008
    {
1009
        if (( ! $this->_getDebugIps()) || ! Mage::getStoreConfig('turpentine_vcl/maintenance/custom_vcl_synth')) {
1010
            return false;
1011
        }
1012
1013
        switch (Mage::getStoreConfig('turpentine_varnish/servers/version')) {
1014
            case 4.0:
1015
            case 4.1:
1016
                $tpl = <<<EOS
1017
sub vcl_synth {
1018
    if (resp.status == 999) {
1019
        set resp.status = 503;
1020
        set resp.http.Content-Type = "text/html; charset=utf-8";
1021
        synthetic({"{{vcl_synth_content}}"});
1022
        return (deliver);
1023
    }
1024
    return (deliver);
1025
}
1026
1027
EOS;
1028
                break;
1029
            default:
1030
                $tpl = <<<EOS
1031
sub vcl_error {
1032
    set obj.http.Content-Type = "text/html; charset=utf-8";
1033
    synthetic {"{{vcl_synth_content}}"};
1034
    return (deliver);
1035
}
1036
EOS;
1037
        }
1038
1039
        return $this->_formatTemplate($tpl, array(
1040
            'vcl_synth_content' => Mage::getStoreConfig('turpentine_vcl/maintenance/custom_vcl_synth')));
1041
    }
1042
1043
    /**
1044
     * vcl_synth for fixing https