Change error behavior: Return ZTS_ERR_SERVICE in all cases before checking anything else
This commit is contained in:
@@ -69,15 +69,15 @@ JNIEXPORT jint JNICALL Java_com_zerotier_libzt_ZeroTier_socket(
|
|||||||
|
|
||||||
int zts_connect(int fd, const struct zts_sockaddr *addr, zts_socklen_t addrlen)
|
int zts_connect(int fd, const struct zts_sockaddr *addr, zts_socklen_t addrlen)
|
||||||
{
|
{
|
||||||
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
|
return ZTS_ERR_SERVICE;
|
||||||
|
}
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (addrlen > (int)sizeof(struct zts_sockaddr_storage) || addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
if (addrlen > (int)sizeof(struct zts_sockaddr_storage) || addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
|
||||||
return ZTS_ERR_SERVICE;
|
|
||||||
}
|
|
||||||
return lwip_connect(fd, (sockaddr*)addr, addrlen);
|
return lwip_connect(fd, (sockaddr*)addr, addrlen);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -94,15 +94,15 @@ JNIEXPORT jint JNICALL Java_com_zerotier_libzt_ZeroTier_connect(
|
|||||||
|
|
||||||
int zts_bind(int fd, const struct zts_sockaddr *addr, zts_socklen_t addrlen)
|
int zts_bind(int fd, const struct zts_sockaddr *addr, zts_socklen_t addrlen)
|
||||||
{
|
{
|
||||||
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
|
return ZTS_ERR_SERVICE;
|
||||||
|
}
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (addrlen > (int)sizeof(struct zts_sockaddr_storage) || addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
if (addrlen > (int)sizeof(struct zts_sockaddr_storage) || addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
|
||||||
return ZTS_ERR_SERVICE;
|
|
||||||
}
|
|
||||||
return lwip_bind(fd, (sockaddr*)addr, addrlen);
|
return lwip_bind(fd, (sockaddr*)addr, addrlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,15 +266,15 @@ JNIEXPORT jint JNICALL Java_com_zerotier_libzt_ZeroTier_getsockopt(
|
|||||||
|
|
||||||
int zts_getsockname(int fd, struct zts_sockaddr *addr, zts_socklen_t *addrlen)
|
int zts_getsockname(int fd, struct zts_sockaddr *addr, zts_socklen_t *addrlen)
|
||||||
{
|
{
|
||||||
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
|
return ZTS_ERR_SERVICE;
|
||||||
|
}
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (*addrlen > (int)sizeof(struct zts_sockaddr_storage) || *addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
if (*addrlen > (int)sizeof(struct zts_sockaddr_storage) || *addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
|
||||||
return ZTS_ERR_SERVICE;
|
|
||||||
}
|
|
||||||
return lwip_getsockname(fd, (sockaddr*)addr, (socklen_t*)addrlen);
|
return lwip_getsockname(fd, (sockaddr*)addr, (socklen_t*)addrlen);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -291,15 +291,15 @@ JNIEXPORT jboolean JNICALL Java_com_zerotier_libzt_ZeroTier_getsockname(JNIEnv *
|
|||||||
|
|
||||||
int zts_getpeername(int fd, struct zts_sockaddr *addr, zts_socklen_t *addrlen)
|
int zts_getpeername(int fd, struct zts_sockaddr *addr, zts_socklen_t *addrlen)
|
||||||
{
|
{
|
||||||
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
|
return ZTS_ERR_SERVICE;
|
||||||
|
}
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (*addrlen > (int)sizeof(struct zts_sockaddr_storage) || *addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
if (*addrlen > (int)sizeof(struct zts_sockaddr_storage) || *addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
|
||||||
return ZTS_ERR_SERVICE;
|
|
||||||
}
|
|
||||||
return lwip_getpeername(fd, (sockaddr*)addr, (socklen_t*)addrlen);
|
return lwip_getpeername(fd, (sockaddr*)addr, (socklen_t*)addrlen);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -400,12 +400,12 @@ int zts_poll(struct zts_pollfd *fds, nfds_t nfds, int timeout)
|
|||||||
|
|
||||||
int zts_ioctl(int fd, unsigned long request, void *argp)
|
int zts_ioctl(int fd, unsigned long request, void *argp)
|
||||||
{
|
{
|
||||||
if (!argp) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!argp) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
return lwip_ioctl(fd, request, argp);
|
return lwip_ioctl(fd, request, argp);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -435,12 +435,12 @@ JNIEXPORT int JNICALL Java_com_zerotier_libzt_ZeroTier_ioctl(
|
|||||||
|
|
||||||
ssize_t zts_send(int fd, const void *buf, size_t len, int flags)
|
ssize_t zts_send(int fd, const void *buf, size_t len, int flags)
|
||||||
{
|
{
|
||||||
if (!buf) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!buf) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
return lwip_send(fd, buf, len, flags);
|
return lwip_send(fd, buf, len, flags);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -457,15 +457,15 @@ JNIEXPORT jint JNICALL Java_com_zerotier_libzt_ZeroTier_send(
|
|||||||
ssize_t zts_sendto(int fd, const void *buf, size_t len, int flags,
|
ssize_t zts_sendto(int fd, const void *buf, size_t len, int flags,
|
||||||
const struct zts_sockaddr *addr,zts_socklen_t addrlen)
|
const struct zts_sockaddr *addr,zts_socklen_t addrlen)
|
||||||
{
|
{
|
||||||
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
|
return ZTS_ERR_SERVICE;
|
||||||
|
}
|
||||||
if (!addr || !buf) {
|
if (!addr || !buf) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (addrlen > (int)sizeof(struct zts_sockaddr_storage) || addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
if (addrlen > (int)sizeof(struct zts_sockaddr_storage) || addrlen < (int)sizeof(struct zts_sockaddr_in)) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
}
|
}
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
|
||||||
return ZTS_ERR_SERVICE;
|
|
||||||
}
|
|
||||||
return lwip_sendto(fd, buf, len, flags, (sockaddr*)addr, addrlen);
|
return lwip_sendto(fd, buf, len, flags, (sockaddr*)addr, addrlen);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -494,12 +494,12 @@ ssize_t zts_sendmsg(int fd, const struct msghdr *msg, int flags)
|
|||||||
|
|
||||||
ssize_t zts_recv(int fd, void *buf, size_t len, int flags)
|
ssize_t zts_recv(int fd, void *buf, size_t len, int flags)
|
||||||
{
|
{
|
||||||
if (!buf) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!buf) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
return lwip_recv(fd, buf, len, flags);
|
return lwip_recv(fd, buf, len, flags);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -516,12 +516,12 @@ JNIEXPORT jint JNICALL Java_com_zerotier_libzt_ZeroTier_recv(JNIEnv *env, jobjec
|
|||||||
ssize_t zts_recvfrom(int fd, void *buf, size_t len, int flags,
|
ssize_t zts_recvfrom(int fd, void *buf, size_t len, int flags,
|
||||||
struct zts_sockaddr *addr, zts_socklen_t *addrlen)
|
struct zts_sockaddr *addr, zts_socklen_t *addrlen)
|
||||||
{
|
{
|
||||||
if (!buf) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!buf) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
return lwip_recvfrom(fd, buf, len, flags, (sockaddr*)addr, (socklen_t*)addrlen);
|
return lwip_recvfrom(fd, buf, len, flags, (sockaddr*)addr, (socklen_t*)addrlen);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -541,12 +541,12 @@ JNIEXPORT jint JNICALL Java_com_zerotier_libzt_ZeroTier_recvfrom(
|
|||||||
// TODO: JNI version
|
// TODO: JNI version
|
||||||
ssize_t zts_recvmsg(int fd, struct msghdr *msg, int flags)
|
ssize_t zts_recvmsg(int fd, struct msghdr *msg, int flags)
|
||||||
{
|
{
|
||||||
if (!msg) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!msg) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
return lwip_recvmsg(fd, msg, flags);
|
return lwip_recvmsg(fd, msg, flags);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -554,22 +554,22 @@ ssize_t zts_recvmsg(int fd, struct msghdr *msg, int flags)
|
|||||||
|
|
||||||
ssize_t zts_read(int fd, void *buf, size_t len)
|
ssize_t zts_read(int fd, void *buf, size_t len)
|
||||||
{
|
{
|
||||||
if (!buf) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!buf) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
return lwip_read(fd, buf, len);
|
return lwip_read(fd, buf, len);
|
||||||
}
|
}
|
||||||
ssize_t zts_read_offset(int fd, void *buf, size_t offset, size_t len)
|
ssize_t zts_read_offset(int fd, void *buf, size_t offset, size_t len)
|
||||||
{
|
{
|
||||||
if (!buf) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!buf) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
char *cbuf = (char*)buf;
|
char *cbuf = (char*)buf;
|
||||||
return lwip_read(fd, &(cbuf[offset]), len);
|
return lwip_read(fd, &(cbuf[offset]), len);
|
||||||
}
|
}
|
||||||
@@ -611,12 +611,12 @@ ssize_t zts_readv(int s, const struct zts_iovec *iov, int iovcnt)
|
|||||||
|
|
||||||
ssize_t zts_write(int fd, const void *buf, size_t len)
|
ssize_t zts_write(int fd, const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
if (!buf) {
|
|
||||||
return ZTS_ERR_ARG;
|
|
||||||
}
|
|
||||||
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
return ZTS_ERR_SERVICE;
|
return ZTS_ERR_SERVICE;
|
||||||
}
|
}
|
||||||
|
if (!buf) {
|
||||||
|
return ZTS_ERR_ARG;
|
||||||
|
}
|
||||||
return lwip_write(fd, buf, len);
|
return lwip_write(fd, buf, len);
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
#ifdef ZTS_ENABLE_JAVA
|
||||||
@@ -733,6 +733,9 @@ extern struct stats_ lwip_stats;
|
|||||||
|
|
||||||
int zts_get_all_stats(struct zts_stats *statsDest)
|
int zts_get_all_stats(struct zts_stats *statsDest)
|
||||||
{
|
{
|
||||||
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
|
return ZTS_ERR_SERVICE;
|
||||||
|
}
|
||||||
#if LWIP_STATS
|
#if LWIP_STATS
|
||||||
if (!statsDest) {
|
if (!statsDest) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
@@ -764,12 +767,12 @@ int zts_get_all_stats(struct zts_stats *statsDest)
|
|||||||
return ZTS_ERR_NO_RESULT;
|
return ZTS_ERR_NO_RESULT;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef ZTS_ENABLE_JAVA
|
|
||||||
// No implementation for JNI
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int zts_get_protocol_stats(int protocolType, void *protoStatsDest)
|
int zts_get_protocol_stats(int protocolType, void *protoStatsDest)
|
||||||
{
|
{
|
||||||
|
if (!(_serviceStateFlags & ZTS_STATE_NET_SERVICE_RUNNING)) {
|
||||||
|
return ZTS_ERR_SERVICE;
|
||||||
|
}
|
||||||
#if LWIP_STATS
|
#if LWIP_STATS
|
||||||
if (!protoStatsDest) {
|
if (!protoStatsDest) {
|
||||||
return ZTS_ERR_ARG;
|
return ZTS_ERR_ARG;
|
||||||
|
|||||||
Reference in New Issue
Block a user