mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
Add wolfSSL_BIO_tell
This commit is contained in:
19
src/bio.c
19
src/bio.c
@ -1439,6 +1439,25 @@ int wolfSSL_BIO_seek(WOLFSSL_BIO *bio, int ofs)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int wolfSSL_BIO_tell(WOLFSSL_BIO* bio)
|
||||||
|
{
|
||||||
|
WOLFSSL_ENTER("wolfSSL_BIO_tell");
|
||||||
|
int pos;
|
||||||
|
|
||||||
|
if (bio == NULL) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bio->type != WOLFSSL_BIO_FILE) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pos =(int) XFTELL((XFILE)bio->ptr);
|
||||||
|
if(pos < 0)
|
||||||
|
return -1;
|
||||||
|
else
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
#endif /* NO_FILESYSTEM */
|
#endif /* NO_FILESYSTEM */
|
||||||
|
|
||||||
|
|
||||||
|
@ -29222,12 +29222,18 @@ static void test_wolfSSL_BIO(void)
|
|||||||
WOLFSSL_SUCCESS);
|
WOLFSSL_SUCCESS);
|
||||||
|
|
||||||
AssertIntEQ(BIO_read(f_bio1, cert, sizeof(cert)), sizeof(cert));
|
AssertIntEQ(BIO_read(f_bio1, cert, sizeof(cert)), sizeof(cert));
|
||||||
|
AssertIntEQ(BIO_tell(f_bio1),sizeof(cert));
|
||||||
AssertIntEQ(BIO_write(f_bio2, msg, sizeof(msg)), sizeof(msg));
|
AssertIntEQ(BIO_write(f_bio2, msg, sizeof(msg)), sizeof(msg));
|
||||||
|
AssertIntEQ(BIO_tell(f_bio2),sizeof(msg));
|
||||||
AssertIntEQ(BIO_write(f_bio2, cert, sizeof(cert)), sizeof(cert));
|
AssertIntEQ(BIO_write(f_bio2, cert, sizeof(cert)), sizeof(cert));
|
||||||
|
AssertIntEQ(BIO_tell(f_bio2),sizeof(cert) + sizeof(msg));
|
||||||
|
|
||||||
AssertIntEQ((int)BIO_get_fp(f_bio2, &f2), WOLFSSL_SUCCESS);
|
AssertIntEQ((int)BIO_get_fp(f_bio2, &f2), WOLFSSL_SUCCESS);
|
||||||
AssertIntEQ(BIO_reset(f_bio2), 0);
|
AssertIntEQ(BIO_reset(f_bio2), 0);
|
||||||
|
AssertIntEQ(BIO_tell(NULL),-1);
|
||||||
|
AssertIntEQ(BIO_tell(f_bio2),0);
|
||||||
AssertIntEQ(BIO_seek(f_bio2, 4), 0);
|
AssertIntEQ(BIO_seek(f_bio2, 4), 0);
|
||||||
|
AssertIntEQ(BIO_tell(f_bio2),4);
|
||||||
|
|
||||||
BIO_free(f_bio1);
|
BIO_free(f_bio1);
|
||||||
BIO_free(f_bio2);
|
BIO_free(f_bio2);
|
||||||
|
@ -68,6 +68,7 @@
|
|||||||
#define BIO_set_fp wolfSSL_BIO_set_fp
|
#define BIO_set_fp wolfSSL_BIO_set_fp
|
||||||
#define BIO_get_fp wolfSSL_BIO_get_fp
|
#define BIO_get_fp wolfSSL_BIO_get_fp
|
||||||
#define BIO_seek wolfSSL_BIO_seek
|
#define BIO_seek wolfSSL_BIO_seek
|
||||||
|
#define BIO_tell wolfSSL_BIO_tell
|
||||||
#define BIO_write_filename wolfSSL_BIO_write_filename
|
#define BIO_write_filename wolfSSL_BIO_write_filename
|
||||||
#define BIO_set_mem_eof_return wolfSSL_BIO_set_mem_eof_return
|
#define BIO_set_mem_eof_return wolfSSL_BIO_set_mem_eof_return
|
||||||
|
|
||||||
|
@ -1336,6 +1336,7 @@ WOLFSSL_API int wolfSSL_BIO_nwrite(WOLFSSL_BIO *bio, char **buf, int num);
|
|||||||
WOLFSSL_API int wolfSSL_BIO_reset(WOLFSSL_BIO *bio);
|
WOLFSSL_API int wolfSSL_BIO_reset(WOLFSSL_BIO *bio);
|
||||||
|
|
||||||
WOLFSSL_API int wolfSSL_BIO_seek(WOLFSSL_BIO *bio, int ofs);
|
WOLFSSL_API int wolfSSL_BIO_seek(WOLFSSL_BIO *bio, int ofs);
|
||||||
|
WOLFSSL_API int wolfSSL_BIO_tell(WOLFSSL_BIO* bio);
|
||||||
WOLFSSL_API int wolfSSL_BIO_write_filename(WOLFSSL_BIO *bio, char *name);
|
WOLFSSL_API int wolfSSL_BIO_write_filename(WOLFSSL_BIO *bio, char *name);
|
||||||
WOLFSSL_API long wolfSSL_BIO_set_mem_eof_return(WOLFSSL_BIO *bio, int v);
|
WOLFSSL_API long wolfSSL_BIO_set_mem_eof_return(WOLFSSL_BIO *bio, int v);
|
||||||
WOLFSSL_API long wolfSSL_BIO_get_mem_ptr(WOLFSSL_BIO *bio, WOLFSSL_BUF_MEM **m);
|
WOLFSSL_API long wolfSSL_BIO_get_mem_ptr(WOLFSSL_BIO *bio, WOLFSSL_BUF_MEM **m);
|
||||||
|
Reference in New Issue
Block a user