(bind-func send_response
(let ((msglen:i64 4096)
(msg:i8* (zalloc msglen))
(continue #t))
(lambda (buf:i8* nbytes:i32)
(printf "revieved survey: %.*s\n" nbytes buf)
(sprintf msg "RESPONSE ")
(sprintf (pref-ptr msg (strlen msg)) "%s" buf)
(let ((msglen (+ (strlen msg) 1))
(bytes (nn_send RESPONDENT_SOCKET msg msglen 0)))
(if (or (< bytes 0) (< bytes (convert msglen)))
(nn_println_strerror)
void)))))