# BProxy

BProxy (Bottler Proxy)

## Tabla de contenidos
  - [Requisitos <a name="requisitos"></a>](#requisitos-)
  - [Compilación <a name="compilación"></a>](#compilación-)
  - [Ejecución <a name="ejecución"></a>](#ejecución-)
  - [Testeos <a name="tests"></a>](#testeos-)
  - [Limpieza <a name="limpieza"></a>](#limpieza-)

## Requisitos <a name="requisitos"></a>

Debe instalar gcc y make. Estos se encuentran disponibles en el repositorio de la vasta mayoría de distribuciones de Linux/macOS.

## Compilación <a name="compilación"></a>

Para compilar todos los archivos se debe hacer:

```bash
make all
```

## Ejecución <a name="ejecución"></a>

Ahora, tendrá dos ejecutables: `client` y `server`. Note que primero debe correr el `server` y luego conectarse con el `client`.

```bash
./server
```

y en otra terminal

```bash
./client
```

## Testeos <a name="tests"></a>

En orden de realizar un análisis estático del sistema usted debe tener instalado [cppcheck](http://cppcheck.net/) y [pvs-studio](https://pvs-studio.com/). Luego, puede correrlos con:

```bash
make test
```

Por último, si quiere hacer un análisis dinámico (usando [valgrind](https://valgrind.org/)) puede hacerlo mediante:

```bash
valgrind ./server
```

y en otra terminal

```bash
valgrind ./client
```

## Limpieza <a name="limpieza"></a>
Si desea borrar los archivos creados luego de la compilación debe correr:

```bash
make clean
```

Note que si, además, quiere borrar el output de los tests (de `PVS-Studio` específicamente), lo puede hacer con:

```bash
make cleanTest
```

# Autores
- Barmasch, Juan Martín (61033)
- Bellver, Ezequiel (61268)
- Lo Coco, Santiago (61301)