[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnunet-scheme] 285/324: examples: Distribute the example.
From: |
gnunet |
Subject: |
[gnunet-scheme] 285/324: examples: Distribute the example. |
Date: |
Tue, 21 Sep 2021 13:25:25 +0200 |
This is an automated email from the git hooks/post-receive script.
maxime-devos pushed a commit to branch master
in repository gnunet-scheme.
commit 7dfbb2919fcf908944187e99282d7221d7f1c36f
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Mon Sep 13 17:34:16 2021 +0200
examples: Distribute the example.
TODO: document the examples somewhere.
---
Makefile.am | 1 +
examples/nse-web.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+)
diff --git a/Makefile.am b/Makefile.am
index 15673e2..5f921b3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -190,6 +190,7 @@ doc/scheme-gnunet.html: doc/scheme-gnunet.tm
$(TEXMACS_CONVERT) -x $(TEXMACS_HTML_SETTINGS) -c "$<" "$@" -q
dist_doc_DATA = doc/scheme-gnunet.tm doc/fdl.tm
+nobase_dist_doc_DATA = examples/nse-web.scm
nodist_html_DATA = doc/scheme-gnunet.html
nodist_pdf_DATA = doc/scheme-gnunet.pdf
diff --git a/examples/nse-web.scm b/examples/nse-web.scm
new file mode 100644
index 0000000..8d9d810
--- /dev/null
+++ b/examples/nse-web.scm
@@ -0,0 +1,45 @@
+;; Copyright (C) 2021 Maxime Devos
+;; SPDX-License-Identifier: FSFAP
+;; Copying and distribution of this file, with or without modification,
+;; are permitted in any medium without royalty provided the copyright
+;; notice and this notice are preserved. This file is offered as-is,
+;; without any warranty.
+
+(use-modules (fibers)
+ (gnu gnunet config db)
+ (gnu gnunet config fs)
+ (rnrs hashtables)
+ (gnu gnunet nse client)
+ (web server)
+ (srfi srfi-11))
+
+(define config (load-configuration))
+
+(define (url-handler server request body)
+ (define current-estimate (estimate server))
+ (define body
+ (if current-estimate
+ (format #f "timestamp: ~a~%number peers: ~a~%stddev logarithm: ~a"
+ (estimate:timestamp current-estimate)
+ (estimate:number-peers current-estimate)
+ (estimate:standard-deviation current-estimate))
+ "no estimate available yet ..."))
+ (values '((content-type text/plain)) body #f))
+
+(define (start config)
+ (define nse-server (connect config))
+ (define impl (lookup-server-impl 'fiberized))
+ (define server (open-server impl `(#:port 8089)))
+ (define (url-handler* request body)
+ (url-handler nse-server request body))
+ (let loop ()
+ (let-values (((client request body)
+ (read-client impl server)))
+ (spawn-fiber
+ (lambda ()
+ (let-values (((response body state)
+ (handle-request url-handler* request body '())))
+ (write-client impl server client response body)))))
+ (loop)))
+
+(run-fibers (lambda () (start config)))
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnunet-scheme] 276/324: nse/client: Stop reconnecting when a disconnect is requested., (continued)
- [gnunet-scheme] 276/324: nse/client: Stop reconnecting when a disconnect is requested., gnunet, 2021/09/21
- [gnunet-scheme] 278/324: doc: Use MathML instead of PNG images., gnunet, 2021/09/21
- [gnunet-scheme] 279/324: build: Remove resolved TODO., gnunet, 2021/09/21
- [gnunet-scheme] 280/324: config/fs: Locate the user and system configuration., gnunet, 2021/09/21
- [gnunet-scheme] 283/324: config/fs: Mark TODO's as done., gnunet, 2021/09/21
- [gnunet-scheme] 286/324: build: Correct location of defaults file., gnunet, 2021/09/21
- [gnunet-scheme] 287/324: doc: Document how the read values from a configuration., gnunet, 2021/09/21
- [gnunet-scheme] 281/324: config: Implement loading a configuration file., gnunet, 2021/09/21
- [gnunet-scheme] 284/324: config: Automatically load defaults, system and user configuration., gnunet, 2021/09/21
- [gnunet-scheme] 282/324: config: Allow expanding loaded configurations., gnunet, 2021/09/21
- [gnunet-scheme] 285/324: examples: Distribute the example.,
gnunet <=
- [gnunet-scheme] 289/324: guix: Set up .guix-authorizations., gnunet, 2021/09/21
- [gnunet-scheme] 288/324: ROADMAP.org: Mark resolved TODO's as DONE., gnunet, 2021/09/21
- [gnunet-scheme] 295/324: tests/network-size: Remove resolved XXX., gnunet, 2021/09/21
- [gnunet-scheme] 304/324: doc: Don't suggest Scheme-GNUnet has any applications., gnunet, 2021/09/21
- [gnunet-scheme] 306/324: README.org: Really point to doc/scheme-gnunet.tm., gnunet, 2021/09/21
- [gnunet-scheme] 308/324: doc: Remove TODO about mailing lists., gnunet, 2021/09/21
- [gnunet-scheme] 293/324: README.org: Remove things documented in the manual., gnunet, 2021/09/21
- [gnunet-scheme] 301/324: doc: Note a custom guile-fibers and guile is required., gnunet, 2021/09/21
- [gnunet-scheme] 300/324: doc: Move contact information to .tm documentation (and rewrite)., gnunet, 2021/09/21
- [gnunet-scheme] 296/324: RAEDME.org: Remove wishlist., gnunet, 2021/09/21