int esif_ws_http_process_reqs ( int fd, void *buf, ssize_t ret ) { char *buffer = (char*)buf; char *cgiInd; int result; #ifdef BASIC_AUTHENTICATION char *resource = NULL; char *fileType = NULL; #endif printf("esif_ws_http_process_reqs \n"); esif_ws_http_process_buffer(buffer, ret); #ifdef BASIC_AUTHENTICATION if (!esif_ws_http_get_login_requested()) { printf("Requesting login \n"); resource = "login.html"; fileType = "text/html"; esif_ws_http_server_static_pages(buffer, resource, fd, ret, fileType); esif_ws_http_set_login_requested(1); result = 200; } else if (!esif_ws_http_get_authenticated()) { printf("Authenticating login \n"); if (esif_ws_http_is_authorized(buffer)) { esif_ws_http_set_authenticated(1); result = 200; } else { esif_ws_http_send_401(fd); esif_ws_http_set_login_requested(0); esif_ws_http_set_authenticated(0); result = EOF; } } else #endif { // printf("Buffer received: %s\n", buffer); if (!strncmp(buffer, "GET ", 4) || !strncmp(buffer, "POST ", 5)) { /* look for Get request method*/ /*is it a cgi script?*/ cgiInd = strstr(buffer, "/cgi-bin/"); if (cgiInd) { esif_ws_http_serve_cgi_scripts(buffer, fd); } else { esif_ws_http_process_get_or_post(buffer, fd, ret); } result = EOF; } else { result = 405; /*Method not allowed*/ } } return result; }
eEsifError esif_ws_http_process_reqs ( ClientRecordPtr connection, void *buf, ssize_t ret ) { char *buffer = (char*)buf; eEsifError result = ESIF_OK; ESIF_TRACE_DEBUG("esif_ws_http_process_reqs \n"); esif_ws_http_process_buffer(buffer, ret); // ESIF_TRACE_DEBUG("Buffer received: %s\n", buffer); if (!strncmp(buffer, "GET ", 4) || !strncmp(buffer, "POST ", 5)) { /* look for Get request method*/ esif_ws_http_process_request(connection, buffer, ret); result = ESIF_E_WS_DISC; /* 404 or Connection: close */ } else { result = ESIF_E_WS_DISC; /* 405 Method not allowed*/ } return result; }