Skip to content

Commit

Permalink
linting, agregando excepción para portaloas, compilando binario para …
Browse files Browse the repository at this point in the history
…windows y construyendo siempre con gox
  • Loading branch information
andresvia committed Jul 25, 2016
1 parent 710dfd5 commit 2cdafa1
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 47 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ _testmain.go
*.prof

udpac
udpac_*
*.deb
*.rpm
.vagrant
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ addons:
- rpm
before_install:
- gem install fpm
- go get github.com/mitchellh/gox
deploy:
provider: releases
api_key:
Expand Down
18 changes: 6 additions & 12 deletions build.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
#!/bin/bash
set -eu
# detect os
if [ "$(uname -sm)" = "Linux x86_64" ]
then
go_build="go build"
artifact="udpac"
else
go_build="gox -os Linux -arch amd64"
artifact="udpac_linux_amd64"
fi
# use gox
# vars
CURRENT_TAG=$(git tag | tail -n1)
VERSION_MAJOR_MINOR="${TRAVIS_TAG:-$CURRENT_TAG}"
Expand All @@ -20,12 +12,14 @@ rm -rfv packages/*
# get pkgs
go get -t -v ./...
# build
$go_build
gox -os 'Linux Windows' -arch 'amd64 386'
package_artifact="udpac_linux_amd64"
artifacts="udpac_linux_386 udpac_linux_amd64 udpac_windows_386.exe udpac_windows_amd64.exe"
# files
mkdir -pv package/os/usr/sbin
cp -vf $artifact package/os/usr/sbin/udpac
cp -vf $package_artifact package/os/usr/sbin/udpac
# packages and binary
mkdir -vp packages
mv $artifact packages/udpac_linux_amd64
mv $artifacts packages/
fpm --package=packages/ -C package/os -s dir -t deb --name=udpac --version="${VERSION}" --after-install package/after-install --deb-no-default-config-files .
fpm --package=packages/ -C package/os -s dir -t rpm --name=udpac --version="${VERSION}" --after-install package/after-install --rpm-os linux .
84 changes: 49 additions & 35 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,49 +16,63 @@ var pac = `// ESTE ES EL ARCHIVO PAC/WPAD.DAT DE LA UNIVERSIDAD DISTRITAL
function FindProxyForURL(url, host) {
// CUALQUIER PETICION DESDE EL NAVEGADOR A DOMINIOS QUE TERMINEN EN
// .udistrital.edu.co O .udistritaloas.edu.co O .local[domain] NO SE ENVIARA A
// TRAVES DEL PROXY, QUIERE DECIR QUE CONECTARAN DIRECTAMENTE A TRAVES DE LA
// RED LOCAL, SIEMPRE Y CUANDO LOS CLIENTES PUEDAN RESOLVER ESTOS NOMBRES CON
// CONFIGURACION ACTUAL DE DNS Y QUE EXISTA UNA RUTA EN LA RED QUE LOS PUEDA
// CONECTAR ES; DECIR ACTUARA COMO SI EL PROXY SE HUBIERA DESHABILITADO
// MANUALMENTE. ESTA CONDICION SE BASA EN LA DIRECCION QUE SE VISITA EN LA
// BARRA DE DIRECCIONES Y SE EVALUA ANTES DE QUE OCURRA CUALQUIER CONEXION O
// RESOLUCION DE NOMBRE POR PARTE DEL NAVEGADOR
// LA ESTRATEGIA DE FAIL-OVER EN CASO DE QUE NO SE PUEDA ESTABLECER UNA
// CONEXION CON EL PROXY ES HACER CONEXION DIRECTA (DIRECT)
var defaultProxy = "PROXY 10.20.4.15:3128; PROXY proxy.udistrital.edu.co:3128; DIRECT";
if ( shExpMatch(host, "*.local") || // UN DOMINIO MUY COMUN USADO PARA DESARROLLO
shExpMatch(host, "*.localdomain") || // UN DOMINIO COMUN USADO POR DEFECTO
shExpMatch(host, "*.nip.io") || // NIP ES UN CLON DE XIP
shExpMatch(host, "*.xip.io") || // XIP UN SERVICIO QUE MAPEA DOMINIOS COMODIN
shExpMatch(host, "*.udistrital.edu.co") || // DOMINIO OFICIAL DE LA UNIVERSIDAD
shExpMatch(host, "*.udistritaloas.edu.co") // // DOMINIO OFICIAL DE LA OFICINA ASESORA DE SISTEMAS
) return "DIRECT";
// EXCEPCION OFICINA ASESORA DE SISTEMAS
// LA OFICINA ASESORA DE SISTEMAS TIENE UN DOMINIO EL CUAL ES ATENDIDO POR FUERA
// DE LA RED LOCAL, ESTE DEBE REDIRIGIRSE A TRAVES DEL PROXY
if (shExpMatch(host, "*.portaloas.udistrital.edu.co")) {
return defaultProxy;
}
// CUALQUIER PETICION QUE RESUELVA EL NOMBRE DNS A UNA IP LOCAL (ES DECIR
// CUALQUIER IP DEL ESPACIO PRIVADO DE IPV4) NO SERA ENVIADA A TRAVES DEL PROXY
// CUALQUIER PETICION DESDE EL NAVEGADOR A DOMINIOS QUE TERMINEN EN
// .udistrital.edu.co O .udistritaloas.edu.co O .local[domain] NO SE ENVIARA A
// TRAVES DEL PROXY, QUIERE DECIR QUE CONECTARAN DIRECTAMENTE A TRAVES DE LA
// RED LOCAL, SIEMPRE Y CUANDO LOS CLIENTES PUEDAN RESOLVER ESTOS NOMBRES CON
// CONFIGURACION ACTUAL DE DNS Y QUE EXISTA UNA RUTA EN LA RED QUE LOS PUEDA
// CONECTAR ES; DECIR ACTUARA COMO SI EL PROXY SE HUBIERA DESHABILITADO
// MANUALMENTE. ESTA CONDICION SE BASA EN LA DIRECCION QUE SE VISITA EN LA
// BARRA DE DIRECCIONES Y SE EVALUA ANTES DE QUE OCURRA CUALQUIER CONEXION O
// RESOLUCION DE NOMBRE POR PARTE DEL NAVEGADOR
// LAS EXCEPCIONES A ESTA REGLA GENERAL DEBERÁN INSERTARSE ANTES DE ESTO
var resolved_ip = dnsResolve(host);
if ( isInNet(resolved_ip, "10.0.0.0", "255.0.0.0") || // UNA RED DE CLASE A
isInNet(resolved_ip, "172.16.0.0", "255.240.0.0") || // 16 REDES DE CLASE B
isInNet(resolved_ip, "192.168.0.0", "255.255.0.0") || // 256 REDES DE CLASE C
isInNet(resolved_ip, "169.254.0.0", "255.255.0.0") || // LINK-LOCAL RFC3927
isInNet(resolved_ip, "192.0.2.0", "255.255.255.0") || // TEST-NET RFC3330
isInNet(resolved_ip, "127.0.0.0", "255.0.0.0") // // LOOPBACK
) return "DIRECT";
if (shExpMatch(host, "*.local") || // UN DOMINIO MUY COMUN USADO PARA DESARROLLO
shExpMatch(host, "*.localdomain") || // UN DOMINIO COMUN USADO POR DEFECTO
shExpMatch(host, "*.nip.io") || // NIP ES UN CLON DE XIP
shExpMatch(host, "*.xip.io") || // XIP UN SERVICIO QUE MAPEA DOMINIOS COMODIN
shExpMatch(host, "*.udistrital.edu.co") || // DOMINIO OFICIAL DE LA UNIVERSIDAD
shExpMatch(host, "*.udistritaloas.edu.co") // DOMINIO NO OFICIAL DE LA OFICINA ASESORA DE SISTEMAS
) {
return "DIRECT";
}
// CUALQUIER PETICION ENVIADA A UN HOST NO CALIFICADO (POR EJEMPLO http://www/ O
// https://mail/) NO SERA ENVIADA A TRAVES DEL PROXY
// CUALQUIER PETICION QUE RESUELVA EL NOMBRE DNS A UNA IP LOCAL (ES DECIR
// CUALQUIER IP DEL ESPACIO PRIVADO DE IPV4) NO SERA ENVIADA A TRAVES DEL PROXY
// LAS EXCEPCIONES A ESTA REGLA GENERAL DEBERÁN INSERTARSE ANTES DE ESTO
if ( isPlainHostName(host) ) return "DIRECT";
var resolved_ip = dnsResolve(host);
if (isInNet(resolved_ip, "10.0.0.0", "255.0.0.0") || // UNA RED DE CLASE A
isInNet(resolved_ip, "172.16.0.0", "255.240.0.0") || // 16 REDES DE CLASE B
isInNet(resolved_ip, "192.168.0.0", "255.255.0.0") || // 256 REDES DE CLASE C
isInNet(resolved_ip, "169.254.0.0", "255.255.0.0") || // LINK-LOCAL RFC3927
isInNet(resolved_ip, "192.0.2.0", "255.255.255.0") || // TEST-NET RFC3330
isInNet(resolved_ip, "127.0.0.0", "255.0.0.0") // LOOPBACK
) {
return "DIRECT";
}
// CUALQUIER PETICION ENVIADA A UN HOST NO CALIFICADO (POR EJEMPLO http://www/ O
// https://mail/) NO SERA ENVIADA A TRAVES DEL PROXY
// SI NINGUNA DE LAS ANTERIORES CONDICIONES ANTERIORES APLICAN SE USARA PROXY.
// LA ESTRATEGIA DE FAIL-OVER EN CASO DE QUE NO SE PUEDA ESTABLECER UNA
// CONEXION CON EL PROXY ES HACER CONEXION DIRECTA
if (isPlainHostName(host)) {
return "DIRECT";
}
return "PROXY proxy.udistrital.edu.co:3128; DIRECT";
// SI NINGUNA DE LAS ANTERIORES CONDICIONES ANTERIORES APLICAN SE USARA EL PROXY
// POR DEFECTO
return defaultProxy;
// ESTE ES UN EJEMPLO QUE HACE FAIL-OVER CON UN PROXY DE BACKUP
// return "PROXY proxy.udistrital.edu.co:3128; PROXY proxybkp.udistrital.edu.co:3128; DIRECT";
}
// FIN`

Expand Down

0 comments on commit 2cdafa1

Please sign in to comment.