/* generate and write out an appropriate response for the http request */ int generate_response(int sd, char *http_req, int http_req_len) { enum http_req_type request_type = decode_http_request(http_req, http_req_len); switch(request_type) { case HTTP_GET: return do_http_get(sd, http_req, http_req_len); case HTTP_POST: return do_http_post(sd, http_req, http_req_len); default: return do_404(sd, http_req, http_req_len); } }
/* this assumes that tcp_sndbuf is high enough to send atleast 1 packet */ int generate_response(struct tcp_pcb *pcb, char *http_req, int http_req_len) { enum http_req_type request_type = decode_http_request(http_req, http_req_len); switch(request_type) { case HTTP_GET: return do_http_get(pcb, http_req, http_req_len); case HTTP_POST: return do_http_post(pcb, http_req, http_req_len); default: xil_printf("request_type != GET|POST\r\n"); dump_payload(http_req, http_req_len); return do_404(pcb, http_req, http_req_len); } }