aboutsummaryrefslogtreecommitdiff
path: root/lib/libmicrohttpd/src/examples/fileserver_example_dirs.c
diff options
context:
space:
mode:
authormontellese <montellese@xbmc.org>2015-03-13 00:45:47 +0100
committermontellese <montellese@xbmc.org>2015-03-13 00:48:14 +0100
commit0e4e1d7ab3e4fd1d45f63c4ec01c14a34db79f46 (patch)
tree8cb6fa41d38d6b27a76b2d7f4bffa9f6717a0923 /lib/libmicrohttpd/src/examples/fileserver_example_dirs.c
parent337f5f1e2b8a6c0bee39e202e93103b37e7b993a (diff)
lib: get rid of copy of libmicrohttpd
Diffstat (limited to 'lib/libmicrohttpd/src/examples/fileserver_example_dirs.c')
-rw-r--r--lib/libmicrohttpd/src/examples/fileserver_example_dirs.c129
1 files changed, 0 insertions, 129 deletions
diff --git a/lib/libmicrohttpd/src/examples/fileserver_example_dirs.c b/lib/libmicrohttpd/src/examples/fileserver_example_dirs.c
deleted file mode 100644
index 04519c63ea..0000000000
--- a/lib/libmicrohttpd/src/examples/fileserver_example_dirs.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- This file is part of libmicrohttpd
- (C) 2007 Christian Grothoff (and other contributing authors)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-/**
- * @file fileserver_example.c
- * @brief example for how to use libmicrohttpd to serve files (with directory support)
- * @author Christian Grothoff
- */
-
-#include "platform.h"
-#include <dirent.h>
-#include <microhttpd.h>
-#include <unistd.h>
-
-#define PAGE "<html><head><title>File not found</title></head><body>File not found</body></html>"
-
-static int
-file_reader (void *cls, uint64_t pos, char *buf, int max)
-{
- FILE *file = cls;
-
- fseek (file, pos, SEEK_SET);
- return fread (buf, 1, max, file);
-}
-
-
-static int
-dir_reader (void *cls, uint64_t pos, char *buf, int max)
-{
- struct dirent *e;
- if (max < 512)
- return 0;
- do
- {
- e = readdir (cls);
- if (e == NULL)
- return -1;
- } while (e->d_name[0] == '.');
- return snprintf (buf, max,
- "<a href=\"/%s\">%s</a><br>",
- e->d_name,
- e->d_name);
-}
-
-
-static int
-ahc_echo (void *cls,
- struct MHD_Connection *connection,
- const char *url,
- const char *method,
- const char *version,
- const char *upload_data,
- size_t *upload_data_size, void **ptr)
-{
- static int aptr;
- struct MHD_Response *response;
- int ret;
- FILE *file;
- struct stat buf;
-
- if (0 != strcmp (method, MHD_HTTP_METHOD_GET))
- return MHD_NO; /* unexpected method */
- if (&aptr != *ptr)
- {
- /* do never respond on first call */
- *ptr = &aptr;
- return MHD_YES;
- }
- *ptr = NULL; /* reset when done */
- file = fopen (&url[1], "rb");
- if (file == NULL)
- {
- response = MHD_create_response_from_callback (MHD_SIZE_UNKNOWN,
- 32 * 1024,
- &dir_reader,
- opendir ("."),
- (MHD_ContentReaderFreeCallback) &closedir);
- ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
- MHD_destroy_response (response);
- }
- else
- {
- stat (&url[1], &buf);
- response = MHD_create_response_from_callback (buf.st_size, 32 * 1024, /* 32k page size */
- &file_reader,
- file,
- (MHD_ContentReaderFreeCallback)
- & fclose);
- ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
- MHD_destroy_response (response);
- }
- return ret;
-}
-
-int
-main (int argc, char *const *argv)
-{
- struct MHD_Daemon *d;
-
- if (argc != 2)
- {
- printf ("%s PORT\n", argv[0]);
- return 1;
- }
- d = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION | MHD_USE_DEBUG,
- atoi (argv[1]),
- NULL, NULL, &ahc_echo, PAGE, MHD_OPTION_END);
- if (d == NULL)
- return 1;
- while (1) sleep (1);
- MHD_stop_daemon (d);
- return 0;
-}