Introduction
Introduction Statistics Contact Development Disclaimer Help
Add favicon.gif support and cake hater denuciation. - bitreich-httpd - Bitreich…
git clone git://bitreich.org/bitreich-httpd git://enlrupgkhuxnvlhsf6lc3fziv5h2h…
Log
Files
Refs
Tags
README
LICENSE
---
commit fcd6c934e0a00098016278527c53ea8305e479b6
parent 1d63bfa9303355b61925256bb06169e17e38f4f5
Author: Christoph Lohmann <[email protected]>
Date: Fri, 14 Aug 2020 00:27:57 +0200
Add favicon.gif support and cake hater denuciation.
Diffstat:
M bitreich-httpd.c | 30 +++++++++++++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
---
diff --git a/bitreich-httpd.c b/bitreich-httpd.c
@@ -11,6 +11,8 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
+#include <sys/socket.h>
+#include <netdb.h>
void *
xmalloc(size_t size)
@@ -95,12 +97,27 @@ servefile(char *path, char *ctype, int sock)
int
main(int argc, char *argv[])
{
- char *wwwbase, *wwwindex, request[512], *ctype, *path;
+ char *wwwbase, *wwwindex, request[512], *ctype, *path,
+ clienth[NI_MAXHOST], clientp[NI_MAXSERV];
int rlen;
+ struct sockaddr_storage clt;
+ socklen_t cltlen = sizeof(clt);
wwwbase = "/bitreich/www";
wwwindex = "index.html";
+ if (!getpeername(0, (struct sockaddr *)&clt, &cltlen)) {
+ if (getnameinfo((struct sockaddr *)&clt, cltlen, clienth,
+ sizeof(clienth), clientp, sizeof(clien…
+ NI_NUMERICHOST|NI_NUMERICSERV)) {
+ clienth[0] = clientp[0] = '\0';
+ }
+ if (!strncmp(clienth, "::ffff:", 7))
+ memmove(clienth, clienth+7, strlen(clienth)-6);
+ } else {
+ clienth[0] = clientp[0] = '\0';
+ }
+
rlen = read(0, request, sizeof(request)-1);
if (rlen < 0)
return 1;
@@ -113,6 +130,17 @@ main(int argc, char *argv[])
if (strstr(request, "s/bitreich.sh")) {
asprintf(&path, "%s/s/bitreich.sh", wwwbase);
ctype = "text/plain";
+ } else if (strstr(request, "favicon.gif")) {
+ asprintf(&path, "%s/s/favicon.gif", wwwbase);
+ ctype = "image/gif";
+ } else if (strstr(request, "dickbutt")) {
+ asprintf(&path,
+ "/home/annna/bin/annna-say -c \"#bitreich-tv\" \"%s:%s…
+ clienth, clientp);
+ system(path);
+ free(path);
+ asprintf(&path, "%s/s/dickbutt.jpg", wwwbase);
+ ctype = "image/jpeg";
} else {
asprintf(&path, "%s/%s", wwwbase, wwwindex);
ctype = "text/html";
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.