+int
+socket_post_select (Socket * s, fd_set * rfds, fd_set * wfds)
+{
+ char buf[1024];
+ int n;
+ int error = 0;
+
+
+ if ((!SLIDE_EMPTY (s->write_buf)) && FD_ISSET (s->fd, wfds)) {
+ n =
+ (SLIDE_BYTES (s->write_buf) >
+ MAX_TXN) ? MAX_TXN : SLIDE_BYTES (s->write_buf);
+ n = wrap_send (s->fd, SLIDE_RPTR (s->write_buf), n);
+ if (n > 0)
+ slide_consume (s->write_buf, n);
+ if (n < 0)
+ error = -1;
+ }
+
+ if (!SLIDE_FULL (s->read_buf) && FD_ISSET (s->fd, rfds)) {
+ n =
+ (SLIDE_SPACE (s->read_buf) >
+ MAX_TXN) ? MAX_TXN : SLIDE_SPACE (s->read_buf);
+ n = wrap_recv (s->fd, SLIDE_WPTR (s->read_buf), n);
+ if (n > 0)
+ slide_added (s->read_buf, n);
+ if (n < 0)
+ error = -1;
+ }
+
+ s->msg = ipc_check_for_message_in_slide (s->read_buf);
+
+ return error;
+
+}
+
+
+int
+socket_write (Socket * s, void *buf, int len)
+{
+ int n;
+
+ slide_expand (s->write_buf, len);
+ memcpy (SLIDE_WPTR (s->write_buf), buf, len);
+ slide_added (s->write_buf, len);
+
+ n =
+ (SLIDE_BYTES (s->write_buf) >
+ MAX_TXN) ? MAX_TXN : SLIDE_BYTES (s->write_buf);
+ n = wrap_send (s->fd, SLIDE_RPTR (s->write_buf), n);
+ {
+ uint8_t *c = SLIDE_RPTR (s->write_buf);
+ }
+
+ if (n > 0)
+ slide_consume (s->write_buf, n);