1. Make a git repository for your project as described in the handout.
  2. Create a select()-based echo server with support for multiple concurrent clients.
  3. Your server must have the capability to parse input HTTP 1.1 requests and classify them as good or bad based on the specified RFC.
  4. For all good requests, simply echo back the input request.
  5. For all bad requests, provide back a reponse with 400 error code.

To aid you in programming an echo server, and testing it, we have prepared this starter package for you. The server code needs to be modified to use select() as well as adding support for multiple clients at once. The lex and yacc starter code needs additional rules to do correct parsing.

Files we expect to see: