summaryrefslogtreecommitdiffstats
path: root/server/reds.c
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2013-10-08 09:20:43 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2014-01-20 12:15:41 +0100
commitcdaab7272c25a63f1709e5c8fc012a6484326015 (patch)
tree904a92552ff1b034e1a0c61ab402b8905ace09e5 /server/reds.c
parente0abf1adc23886ecf99ad110d2151b187b75919e (diff)
downloadspice-cdaab7272c25a63f1709e5c8fc012a6484326015.tar.gz
spice-cdaab7272c25a63f1709e5c8fc012a6484326015.tar.xz
spice-cdaab7272c25a63f1709e5c8fc012a6484326015.zip
Move stream read/write callbacks to reds_stream.c
Now that stream creation and SSL enabling are done by helpers in reds_stream.c, we can move the initialization of the vfunc read/write pointers there too.
Diffstat (limited to 'server/reds.c')
-rw-r--r--server/reds.c77
1 files changed, 0 insertions, 77 deletions
diff --git a/server/reds.c b/server/reds.c
index 841a2def..b70b98d5 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -191,73 +191,6 @@ void reds_handle_channel_event(int event, SpiceChannelEventInfo *info)
}
}
-static ssize_t stream_write_cb(RedsStream *s, const void *buf, size_t size)
-{
- return write(s->socket, buf, size);
-}
-
-static ssize_t stream_writev_cb(RedsStream *s, const struct iovec *iov, int iovcnt)
-{
- ssize_t ret = 0;
- do {
- int tosend;
- ssize_t n, expected = 0;
- int i;
-#ifdef IOV_MAX
- tosend = MIN(iovcnt, IOV_MAX);
-#else
- tosend = iovcnt;
-#endif
- for (i = 0; i < tosend; i++) {
- expected += iov[i].iov_len;
- }
- n = writev(s->socket, iov, tosend);
- if (n <= expected) {
- if (n > 0)
- ret += n;
- return ret == 0 ? n : ret;
- }
- ret += n;
- iov += tosend;
- iovcnt -= tosend;
- } while(iovcnt > 0);
-
- return ret;
-}
-
-static ssize_t stream_read_cb(RedsStream *s, void *buf, size_t size)
-{
- return read(s->socket, buf, size);
-}
-
-static ssize_t stream_ssl_write_cb(RedsStream *s, const void *buf, size_t size)
-{
- int return_code;
- SPICE_GNUC_UNUSED int ssl_error;
-
- return_code = SSL_write(s->ssl, buf, size);
-
- if (return_code < 0) {
- ssl_error = SSL_get_error(s->ssl, return_code);
- }
-
- return return_code;
-}
-
-static ssize_t stream_ssl_read_cb(RedsStream *s, void *buf, size_t size)
-{
- int return_code;
- SPICE_GNUC_UNUSED int ssl_error;
-
- return_code = SSL_read(s->ssl, buf, size);
-
- if (return_code < 0) {
- ssl_error = SSL_get_error(s->ssl, return_code);
- }
-
- return return_code;
-}
-
static void reds_link_free(RedLinkInfo *link)
{
reds_stream_free(link->stream);
@@ -2738,10 +2671,6 @@ static RedLinkInfo *reds_init_client_ssl_connection(int socket)
if (link == NULL)
goto error;
- link->stream->write = stream_ssl_write_cb;
- link->stream->read = stream_ssl_read_cb;
- link->stream->writev = NULL;
-
ssl_status = reds_stream_enable_ssl(link->stream, reds->ctx);
switch (ssl_status) {
case REDS_STREAM_SSL_STATUS_OK:
@@ -2801,7 +2730,6 @@ static void reds_accept(int fd, int event, void *data)
SPICE_GNUC_VISIBLE int spice_server_add_client(SpiceServer *s, int socket, int skip_auth)
{
RedLinkInfo *link;
- RedsStream *stream;
spice_assert(reds == s);
if (!(link = reds_init_client_connection(socket))) {
@@ -2811,11 +2739,6 @@ SPICE_GNUC_VISIBLE int spice_server_add_client(SpiceServer *s, int socket, int s
link->skip_auth = skip_auth;
- stream = link->stream;
- stream->read = stream_read_cb;
- stream->write = stream_write_cb;
- stream->writev = stream_writev_cb;
-
reds_handle_new_link(link);
return 0;
}