added mio_uchars_to_ipad_bytes() and mio_bchars_to_ipad_bytes()

This commit is contained in:
hyung-hwan 2020-05-27 14:53:48 +00:00
parent 10475bb7fd
commit a40827b07b
2 changed files with 58 additions and 0 deletions

View File

@ -200,6 +200,22 @@ MIO_EXPORT mio_oow_t mio_ipad_bytes_to_bcstr (
mio_oow_t blen
);
MIO_EXPORT int mio_uchars_to_ipad_bytes (
const mio_uch_t* str,
mio_oow_t slen,
mio_uint8_t* buf,
mio_oow_t blen
);
MIO_EXPORT int mio_bchars_to_ipad_bytes (
const mio_bch_t* str,
mio_oow_t slen,
mio_uint8_t* buf,
mio_oow_t blen
);
#if defined(__cplusplus)
}
#endif

View File

@ -1550,3 +1550,45 @@ mio_oow_t mio_ipad_bytes_to_bcstr (const mio_uint8_t* iptr, mio_oow_t ilen, mio_
return 0;
}
}
int mio_uchars_to_ipad_bytes (const mio_uch_t* str, mio_oow_t slen, mio_uint8_t* buf, mio_oow_t blen)
{
if (blen >= 16)
{
struct in6_addr i6;
if (uchars_to_ipv6(str, slen, &i6) <= -1) goto ipv4;
MIO_MEMCPY (buf, i6.s6_addr, 16);
return 16;
}
else if (blen >= 4)
{
struct in_addr i4;
ipv4:
if (uchars_to_ipv4(str, slen, &i4) <= -1) return -1;
MIO_MEMCPY (buf, &i4.s_addr, 4);
return 4;
}
return -1;
}
int mio_bchars_to_ipad_bytes (const mio_bch_t* str, mio_oow_t slen, mio_uint8_t* buf, mio_oow_t blen)
{
if (blen >= 16)
{
struct in6_addr i6;
if (bchars_to_ipv6(str, slen, &i6) <= -1) goto ipv4;
MIO_MEMCPY (buf, i6.s6_addr, 16);
return 16;
}
else if (blen >= 4)
{
struct in_addr i4;
ipv4:
if (bchars_to_ipv4(str, slen, &i4) <= -1) return -1;
MIO_MEMCPY (buf, &i4.s_addr, 4);
return 4;
}
return -1;
}