+ ber_int_options.lbo_valid = LBER_INITIALIZED;
+
+ sb = LBER_CALLOC(1, sizeof(Sockbuf));
+
+ if( sb == NULL ) return NULL;
+
+ ber_pvt_sb_init( sb );
+ return sb;
+}
+
+Sockbuf *ber_sockbuf_alloc_fd( ber_socket_t fd )
+{
+ Sockbuf *sb = ber_sockbuf_alloc();
+
+ if( sb == NULL ) return NULL;
+
+ ber_pvt_sb_set_desc( sb, fd );
+ ber_pvt_sb_set_io( sb, &ber_pvt_sb_io_tcp, NULL );
+ return sb;
+}
+
+void ber_sockbuf_free( Sockbuf *sb )
+{
+ assert(sb != NULL);
+ assert( SOCKBUF_VALID( sb ) );
+ ber_pvt_sb_destroy( sb );
+ LBER_FREE(sb);
+}
+
+ber_slen_t
+ber_pvt_sb_read( Sockbuf *sb, void *buf_arg, ber_len_t len )