Server/client split; WIP
This commit is contained in:
parent
f16b0884f0
commit
23a923ad77
|
@ -0,0 +1 @@
|
|||
compiled/
|
|
@ -0,0 +1,16 @@
|
|||
#lang racket/base
|
||||
|
||||
(provide )
|
||||
|
||||
(require "private/util.rkt")
|
||||
|
||||
(module+ test (require rackunit))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(struct client (callback-url-base
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define (subscribe! client topic [callback #f]
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
#lang racket/base
|
||||
|
||||
(provide random-hex-string
|
||||
extend-url-string-query)
|
||||
|
||||
(require (only-in file/sha1 bytes->hex-string))
|
||||
(require (only-in racket/random crypto-random-bytes))
|
||||
(require net/url)
|
||||
|
||||
(module+ test (require rackunit))
|
||||
|
||||
(define (random-hex-string half-length)
|
||||
(bytes->hex-string (crypto-random-bytes half-length)))
|
||||
|
||||
(define (extend-url-string-query urlstr extension)
|
||||
(define u (string->url urlstr))
|
||||
(url->string (struct-copy url u [query (append (url-query u) extension)])))
|
||||
|
||||
(module+ test
|
||||
(check-equal? (extend-url-string-query "http://localhost/" '((a . "hi")))
|
||||
"http://localhost/?a=hi")
|
||||
(check-equal? (extend-url-string-query "http://localhost/" '())
|
||||
"http://localhost/")
|
||||
(check-equal? (extend-url-string-query "http://localhost?foo=bar" '())
|
||||
"http://localhost?foo=bar")
|
||||
(check-equal? (extend-url-string-query "http://localhost/?foo=bar" '())
|
||||
"http://localhost/?foo=bar")
|
||||
(check-equal? (extend-url-string-query "http://localhost?foo=bar" '((a . "hi")))
|
||||
"http://localhost?foo=bar&a=hi")
|
||||
(check-equal? (extend-url-string-query "http://localhost/?foo=bar" '((a . "hi")))
|
||||
"http://localhost/?foo=bar&a=hi"))
|
|
@ -1,16 +1,18 @@
|
|||
#lang syndicate/actor
|
||||
|
||||
(provide )
|
||||
|
||||
(require racket/format)
|
||||
(require racket/set)
|
||||
(require racket/random)
|
||||
(require net/url)
|
||||
(require net/uri-codec)
|
||||
(require file/sha1)
|
||||
|
||||
(require/activate syndicate/drivers/timer)
|
||||
(require/activate syndicate/drivers/web)
|
||||
(require syndicate/protocol/advertise)
|
||||
|
||||
(require "private/util.rkt")
|
||||
|
||||
(module+ test (require rackunit))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
@ -181,7 +183,7 @@
|
|||
(define (subscription-change-validate mode lease topic callback)
|
||||
(define u (string->url callback))
|
||||
(define res (url->resource u))
|
||||
(define challenge (bytes->hex-string (crypto-random-bytes 16)))
|
||||
(define challenge (random-hex-string 16))
|
||||
(define id (gensym 'validation))
|
||||
(define extra-query (list* (cons 'hub.mode mode)
|
||||
(cons 'hub.topic topic)
|
Loading…
Reference in New Issue