Hai, Konni!
Hab mal wieder gebaut und mit dem aktuellen Kot läuft die Kiste auch auf BSD.
diff --git a/src/dietchan/src/config.h b/src/dietchan/src/config.h
index 9f64c30..4c3af42 100644
--- a/src/dietchan/src/config.h
+++ b/src/dietchan/src/config.h
@@ -75,5 +75,6 @@
#define MAX_GET_PARAM_LENGTH 2048
#define MAX_POST_PARAM_LENGTH 16384
#define MAX_MULTIPART_BOUNDARY_LENGTH 128
+#define NEED_CAPTCHA 0
#endif // CONFIG_H
diff --git a/src/dietchan/src/dietchan.c b/src/dietchan/src/dietchan.c
index 65be601..64ce7ed 100644
--- a/src/dietchan/src/dietchan.c
+++ b/src/dietchan/src/dietchan.c
@@ -380,7 +380,7 @@ int main(int argc, char* argv[])
mkdir(DOC_ROOT "/uploads", 0755);
mkdir(DOC_ROOT "/captchas", 0755);
// Start generating captchas
- generate_captchas();
+ if (NEED_CAPTCHA) generate_captchas();
// Main loop
while (1) {
Eigentlich sollte das nur auskommentiert werden, aber wir haben ja schon eine config.h.
diff --git a/src/dietchan/src/http.c b/src/dietchan/src/http.c
index c141d33..f82f55f 100644
--- a/src/dietchan/src/http.c
+++ b/src/dietchan/src/http.c
@@ -1,6 +1,8 @@
#include "http.h"
+#ifdef __GLIBC__
#include <alloca.h>
+#endif
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
Anscheinend ist alloca.h GLIBC-spezifisch und ich habe überlegt, wie man das umsetzen kann. Wörksformi(tm), aber jetzt fange ich an, den Kot mit ifdefs zu verschandeln. Ich habe mal gelesen, dass das schöner geht, kann mich aber nicht daran erinnern wie.
diff --git a/src/dietchan/src/import.c b/src/dietchan/src/import.c
index eab0a6f..a0ca7a2 100644
--- a/src/dietchan/src/import.c
+++ b/src/dietchan/src/import.c
@@ -1,6 +1,5 @@
#include "import.h"
-#include <malloc.h>
#include <unistd.h>
#include <ctype.h>
#include <stdio.h>
Einbinden von malloc.h ist angeblich auch auf Linux mittlerweile unerwünscht, also habe ich es einfach ausgelassen.
diff --git a/src/dietchan/src/pages/post.c b/src/dietchan/src/pages/post.c
index 2971796..16acadc 100644
--- a/src/dietchan/src/pages/post.c
+++ b/src/dietchan/src/pages/post.c
@@ -1,9 +1,8 @@
-#define _BSD_SOURCE 1
+#define _BSD_SOURCE 1
#define _GNU_SOURCE 1
#define _XOPEN_SOURCE 1
#include "post.h"
-#include "malloc.h"
#include <stdio.h>
#include <sys/socket.h>
#include <sys/stat.h>
In post.c hat sich ein BOM
Ж verirrt, an dem sich gcc verschluckt.
Das "malloc.h" habe ich aus demselben Grund ausgelassen, warum ist es hier allerdings in ""?
diff --git a/src/dietchan/src/util.c b/src/dietchan/src/util.c
index 3802858..b6c78ab 100644
--- a/src/dietchan/src/util.c
+++ b/src/dietchan/src/util.c
@@ -1,11 +1,15 @@
#include "util.h"
#include <ctype.h>
+#ifdef __GLIBC__
#include <alloca.h>
+#endif
#include <libowfat/str.h>
#include <libowfat/fmt.h>
#include <libowfat/scan.h>
+#ifndef arc4random
#include "arc4random.h"
+#endif
size_t byte_str(const char *haystack, size_t haystack_length, const char *needle)
{
Keine Ahnung, ob das so funktioniert. In BSD wird arc4random in der stdlib.h definiert, also sollte er die eigene Definition nicht einbinden.