31 lines
797 B
Scheme
31 lines
797 B
Scheme
(import scheme)
|
|
(import (chicken base))
|
|
(import srfi-1)
|
|
(import srfi-13)
|
|
(import socket)
|
|
(import (chicken process-context))
|
|
|
|
(define broadcast-socket #f)
|
|
|
|
(define bind-address (inet-address "0.0.0.0" #f))
|
|
|
|
(define broadcast-address (inet-address "255.255.255.255" 3742))
|
|
|
|
(define (broadcast-setup)
|
|
(set! broadcast-socket (socket af/inet sock/dgram))
|
|
(set! (so-broadcast? broadcast-socket) #t)
|
|
(socket-bind broadcast-socket bind-address))
|
|
|
|
(define (broadcast-send str)
|
|
(socket-send-to broadcast-socket str broadcast-address))
|
|
|
|
(define (main)
|
|
(let ((args (drop (argv) 1)))
|
|
(if (null? args)
|
|
(begin (display "usage: net-notify <message>")
|
|
(newline))
|
|
(begin (broadcast-setup)
|
|
(broadcast-send (string-concatenate (intersperse (cons "net-notify:" args) " ")))))))
|
|
|
|
(main)
|