-#ifdef DEBUG
- printf(" connection to server established\n");
-#endif
-
- /* We've established a connection, tell the client. */
- fprintf(client_fd, "HTTP/1.0 200 Connection established\r\n");
- fprintf(client_fd, "\r\n");
- fflush(client_fd);
-
- /* And transfer all data between client and server transparently. */
- transfer_data(client_socket, server_socket);
-
- fclose(client_fd);
- fclose(server_fd);
-}
-
-/* Read HTTP request line and headers (ignored).
- *
- * On success 0 is returned, -1 on client error (we close client descriptor in
- * this case), -2 on unexpected EOF.
- */
-static int read_http_request(FILE *client_fd, char *request, size_t length) {
- char buffer[MAX_REQUEST_LINE];
-
- if (NULL == fgets(request, (int)length, client_fd)) {
- if (ferror(client_fd)) {
- perror("fgets(), request");
- fclose(client_fd);
- return -1;
- }
-
- return -2;
- }
-
- while (NULL != fgets(buffer, MAX_REQUEST_LINE, client_fd)) {
- /* End of header. */
- if (0 == strcmp(buffer, "\n") || 0 == strcmp(buffer, "\r\n")) {
- break;
- }
- }
- if (ferror(client_fd)) {
- perror("fgets(), header");
- fclose(client_fd);
- return -1;
- }
-
- return 0;
+ /* Generate Diffie-Hellman parameters. */
+ result = gnutls_dh_params_init(&global_tls_dh_params);
+ GNUTLS_ERROR_EXIT(result, "gnutls_dh_params_init()");
+ result = gnutls_dh_params_generate2(global_tls_dh_params, DH_SIZE);
+ GNUTLS_ERROR_EXIT(result, "gnutls_dh_params_generate2()");