+/* -------------------------------------------------------------------
+ * Set the socket buffer size in bytes (returns -1 on error, 0 otherwise).
+ * ------------------------------------------------------------------- */
+int set_buffer_sock_size(int inSock, int inWinSize , bool inSend)
+{
+ // note: results are verified after connect() or listen(),
+ // since some OS's don't show the corrected value until then.
+#ifdef SO_SNDBUF
+ if (inWinSize > 0) {
+ return setsockopt(inSock, SOL_SOCKET,
+ inSend ? SO_SNDBUF: SO_RCVBUF,
+ &inWinSize, sizeof(inWinSize));
+ }
+#else
+ fprintf(stderr, "%s: no support for SO_SNDBUF\n", __FUNCTION__);
+#endif
+ return 0;
+}
+