Some more HTTP multi-threading Fun. CGI is broken. (0.39.11)
This commit is contained in:
parent
5222f79434
commit
6a16e5fb45
8 changed files with 496 additions and 15 deletions
|
|
@ -1,22 +0,0 @@
|
|||
#!/usr/bin/env fun
|
||||
|
||||
/*
|
||||
* This file is part of the Fun programming language.
|
||||
* https://fun-lang.xyz/
|
||||
*
|
||||
* Copyright 2025 Johannes Findeisen <you@hanez.org>
|
||||
* Licensed under the terms of the Apache-2.0 license.
|
||||
* https://opensource.org/license/apache-2-0
|
||||
*
|
||||
* Added: 2025-12-28
|
||||
*/
|
||||
|
||||
#include <net/http_server.fun>
|
||||
|
||||
port = 8080
|
||||
htdocs = "./examples/data/htdocs"
|
||||
|
||||
server = HTTPServer(port)
|
||||
server.set_htdocs(htdocs)
|
||||
|
||||
server.start()
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
#!/usr/bin/env fun
|
||||
|
||||
/*
|
||||
* This file is part of the Fun programming language.
|
||||
* https://fun-lang.xyz/
|
||||
*
|
||||
* Copyright 2026 Johannes Findeisen <you@hanez.org>
|
||||
* Licensed under the terms of the Apache-2.0 license.
|
||||
* https://opensource.org/license/apache-2-0
|
||||
*
|
||||
* Added: 2026-03-25
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal CGI-capable HTTP server (blocking)
|
||||
*
|
||||
* Try:
|
||||
* - http://127.0.0.1:8080/
|
||||
* - http://127.0.0.1:8080/hello.fun?name=Fun
|
||||
+ - http://127.0.0.1:8080/info.fun?name=Fun
|
||||
*/
|
||||
|
||||
#include <net/http_cgi_server.fun>
|
||||
|
||||
port = 8080
|
||||
htdocs = "./examples/data/htdocs"
|
||||
|
||||
server = HTTPCGIServer(port)
|
||||
server.set_htdocs(htdocs)
|
||||
server.start()
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
#!/usr/bin/env fun
|
||||
|
||||
/*
|
||||
* This file is part of the Fun programming language.
|
||||
* https://fun-lang.xyz/
|
||||
*
|
||||
* Copyright 2026 Johannes Findeisen <you@hanez.org>
|
||||
* Licensed under the terms of the Apache-2.0 license.
|
||||
* https://opensource.org/license/apache-2-0
|
||||
*
|
||||
* Added: 2026-03-25
|
||||
*/
|
||||
|
||||
/*
|
||||
* Minimal blocking HTTP server that serves static files and
|
||||
* handles a built-in CGI endpoint using the net/cgi.fun library.
|
||||
*
|
||||
* Try:
|
||||
* - http://127.0.0.1:8080/
|
||||
* - http://127.0.0.1:8080/hello.fun?name=Fun
|
||||
+ - http://127.0.0.1:8080/info.fun?name=Fun
|
||||
*/
|
||||
|
||||
#include <net/http_cgi_lib_server.fun>
|
||||
|
||||
port = 8080
|
||||
htdocs = "./examples/data/htdocs"
|
||||
|
||||
server = HTTPCGILibServer(port)
|
||||
server.set_htdocs(htdocs)
|
||||
server.start()
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
#!/usr/bin/env fun
|
||||
|
||||
/*
|
||||
* This file is part of the Fun programming language.
|
||||
* https://fun-lang.xyz/
|
||||
*
|
||||
* Copyright 2025 Johannes Findeisen <you@hanez.org>
|
||||
* Licensed under the terms of the Apache-2.0 license.
|
||||
* https://opensource.org/license/apache-2-0
|
||||
*
|
||||
* Added: 2025-12-28
|
||||
*/
|
||||
|
||||
#include <io/socket.fun>
|
||||
|
||||
c = TcpClient()
|
||||
if (c.connect("127.0.0.1", 8080))
|
||||
print("Connecting to server...")
|
||||
// Test GET
|
||||
print("Testing GET...")
|
||||
c.send("GET /info.fun?foo=bar&baz=qux HTTP/1.1\r\nHost: localhost\r\n\r\n")
|
||||
resp = c.recv_all(4096)
|
||||
print("GET Response contains foo=bar: " + to_string(find(resp, "foo = bar") >= 0))
|
||||
print("GET Response contains baz=qux: " + to_string(find(resp, "baz = qux") >= 0))
|
||||
c.close()
|
||||
else
|
||||
print("Failed to connect to server")
|
||||
|
||||
if (c.connect("127.0.0.1", 8080))
|
||||
// Test POST
|
||||
print("Testing POST...")
|
||||
body = "postfoo=postbar&postbaz=postqux"
|
||||
req = "POST /info.fun HTTP/1.1\r\n"
|
||||
req = req + "Host: localhost\r\n"
|
||||
req = req + "Content-Length: " + to_string(len(body)) + "\r\n"
|
||||
req = req + "\r\n"
|
||||
req = req + body
|
||||
c.send(req)
|
||||
resp = c.recv_all(4096)
|
||||
print("POST Response contains postfoo=postbar: " + to_string(find(resp, "postfoo = postbar") >= 0))
|
||||
print("POST Response contains postbaz=postqux: " + to_string(find(resp, "postbaz = postqux") >= 0))
|
||||
c.close()
|
||||
else
|
||||
print("Failed to connect to server for POST")
|
||||
Loading…
Add table
Add a link
Reference in a new issue