Changeset 1322:3bdf57f6d5cb in roaraudio for libroar/vio_bio.c
- Timestamp:
- 03/21/09 17:05:17 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/vio_bio.c
r1321 r1322 35 35 #include "libroar.h" 36 36 37 int roar_vio_open_bio (struct roar_vio_calls * calls, BIO * bio) { 38 #ifdef ROAR_HAVE_LIBSSL 39 if ( calls == NULL || bio == NULL ) 40 return -1; 41 42 memset(calls, 0, sizeof(struct roar_vio_calls)); 43 44 calls->read = roar_vio_bio_read; 45 calls->write = roar_vio_bio_write; 46 calls->lseek = roar_vio_bio_lseek; 47 calls->nonblock = roar_vio_bio_nonblock; 48 calls->sync = roar_vio_bio_sync; 49 calls->close = roar_vio_bio_close; 50 51 calls->inst = (void*) bio; 52 53 return 0; 54 #else 55 return -1; 56 #endif 57 } 58 59 BIO * roar_vio_to_bio (struct roar_vio_calls * calls) { 60 return NULL; 61 } 62 63 #ifdef ROAR_HAVE_LIBSSL 64 ssize_t roar_vio_bio_read (struct roar_vio_calls * vio, void *buf, size_t count) { 65 BIO * bio = (BIO*)(vio->inst); 66 int r; 67 68 if ( (r = BIO_read(bio, buf, count)) == -2 ) 69 return -1; 70 71 return r; 72 } 73 ssize_t roar_vio_bio_write (struct roar_vio_calls * vio, void *buf, size_t count) { 74 BIO * bio = (BIO*)(vio->inst); 75 int r; 76 77 if ( (r = BIO_write(bio, buf, count)) == -2 ) 78 return -1; 79 80 return r; 81 } 82 83 off_t roar_vio_bio_lseek (struct roar_vio_calls * vio, off_t offset, int whence) { 84 return -1; 85 } 86 87 int roar_vio_bio_nonblock(struct roar_vio_calls * vio, int state) { 88 return -1; 89 } 90 int roar_vio_bio_sync (struct roar_vio_calls * vio) { 91 return -1; 92 } 93 94 int roar_vio_bio_close (struct roar_vio_calls * vio) { 95 BIO * bio = (BIO*)(vio->inst); 96 97 // TODO: check the return values 98 99 BIO_flush(bio); 100 BIO_free_all(bio); 101 102 return 0; 103 } 104 #endif 105 37 106 //ll
Note: See TracChangeset
for help on using the changeset viewer.