void Cversion_check_handler::handle(const std::string& response) { int status_code = get_status_code(response); if (status_code != 200) alert(Calert(Calert::error, "HTTP error: " + n(status_code))); m_version = atoi(get_message_body(response).c_str()); if (m_version > m_server.version()) alert(Calert(Calert::info, xbt_version2a(m_version) + " is now available!")); }
ScmObj Scm_SocketSend(ScmSocket *sock, ScmObj msg, int flags) { int r; u_int size; CLOSE_CHECK(sock->fd, "send to", sock); const char *cmsg = get_message_body(msg, &size); SCM_SYSCALL(r, send(sock->fd, cmsg, size, flags)); if (r < 0) Scm_SysError("send(2) failed"); return SCM_MAKE_INT(r); }
ScmObj Scm_SocketSendTo(ScmSocket *sock, ScmObj msg, ScmSockAddr *to, int flags) { int r; u_int size; CLOSE_CHECK(sock->fd, "send to", sock); const char *cmsg = get_message_body(msg, &size); SCM_SYSCALL(r, sendto(sock->fd, cmsg, size, flags, &SCM_SOCKADDR(to)->addr, SCM_SOCKADDR(to)->addrlen)); if (r < 0) Scm_SysError("sendto(2) failed"); return SCM_MAKE_INT(r); }
ScmObj Scm_SocketSendMsg(ScmSocket *sock, ScmObj msg, int flags) { #if !GAUCHE_WINDOWS int r; u_int size; CLOSE_CHECK(sock->fd, "send to", sock); const char *cmsg = get_message_body(msg, &size); SCM_SYSCALL(r, sendmsg(sock->fd, (struct msghdr*)cmsg, flags)); if (r < 0) Scm_SysError("sendmsg(2) failed"); return SCM_MAKE_INT(r); #else /*GAUCHE_WINDOWS*/ Scm_Error("sendmsg is not implemented on this platform."); return SCM_UNDEFINED; /* dummy */ #endif /*GAUCHE_WINDOWS*/ }
ScmObj Scm_TLSWrite(ScmTLS* t, ScmObj msg) { #if defined(GAUCHE_USE_AXTLS) context_check(t, "write"); close_check(t, "write"); int r; u_int size; const uint8_t* cmsg = get_message_body(msg, &size); if ((r = ssl_write(t->conn, cmsg, size)) < 0) { Scm_SysError("ssl_write() failed"); } return SCM_MAKE_INT(r); #else /*!GAUCHE_USE_AXTLS*/ return SCM_FALSE; #endif /*!GAUCHE_USE_AXTLS*/ }