bugfixes and compiler warnings with gcc on linux

Signed-off-by: hayati ayguen <h_ayguen@web.de>
development
hayati ayguen 2019-07-28 00:44:45 +00:00
parent 22a920d0a6
commit 4feaa59cc6
4 changed files with 13 additions and 17 deletions

View File

@ -26,7 +26,7 @@ extern "C" {
typedef struct typedef struct
{ {
rtlsdr_dev_t *dev; rtlsdr_dev_t *dev;
SOCKET port; int port;
int wait; int wait;
int report_i2c; int report_i2c;
char *addr; char *addr;

View File

@ -84,6 +84,7 @@ void *ctrl_thread_fn(void *arg)
struct linger ling = { 1,0 }; struct linger ling = { 1,0 };
SOCKET listensocket; SOCKET listensocket;
SOCKET controlSocket; SOCKET controlSocket;
int haveControlSocket = 0;
struct sockaddr_in local, remote; struct sockaddr_in local, remote;
socklen_t rlen; socklen_t rlen;
@ -102,6 +103,7 @@ void *ctrl_thread_fn(void *arg)
char *addr = data->addr; char *addr = data->addr;
int* do_exit = data->pDoExit; int* do_exit = data->pDoExit;
u_long blockmode = 1; u_long blockmode = 1;
int retval;
memset(reg_values, 0, NUM_I2C_REGISTERS); memset(reg_values, 0, NUM_I2C_REGISTERS);
@ -115,9 +117,9 @@ void *ctrl_thread_fn(void *arg)
setsockopt(listensocket, SOL_SOCKET, SO_REUSEADDR, (char *)&r, sizeof(int)); setsockopt(listensocket, SOL_SOCKET, SO_REUSEADDR, (char *)&r, sizeof(int));
setsockopt(listensocket, SOL_SOCKET, SO_LINGER, (char *)&ling, sizeof(ling)); setsockopt(listensocket, SOL_SOCKET, SO_LINGER, (char *)&ling, sizeof(ling));
int retval = bind(listensocket, (struct sockaddr *)&local, sizeof(local)); retval = bind(listensocket, (struct sockaddr *)&local, sizeof(local));
if (retval == SOCKET_ERROR) if (retval == SOCKET_ERROR)
error = WSAGetLastError(); error = 1;
#ifdef _WIN32 #ifdef _WIN32
ioctlsocket(listensocket, FIONBIO, &blockmode); ioctlsocket(listensocket, FIONBIO, &blockmode);
#else #else
@ -129,11 +131,7 @@ void *ctrl_thread_fn(void *arg)
printf("listening on Control port %d...\n", port); printf("listening on Control port %d...\n", port);
retval = listen(listensocket, 1); retval = listen(listensocket, 1);
if (retval == SOCKET_ERROR) if (retval == SOCKET_ERROR)
#ifdef _WIN32 error = 1;
error = WSAGetLastError();
#else
;
#endif
while (1) { while (1) {
FD_ZERO(&connfds); FD_ZERO(&connfds);
FD_SET(listensocket, &connfds); FD_SET(listensocket, &connfds);
@ -146,6 +144,7 @@ void *ctrl_thread_fn(void *arg)
else if (r) { else if (r) {
rlen = sizeof(remote); rlen = sizeof(remote);
controlSocket = accept(listensocket, (struct sockaddr *)&remote, &rlen); controlSocket = accept(listensocket, (struct sockaddr *)&remote, &rlen);
haveControlSocket = 1;
break; break;
} }
} }
@ -217,7 +216,8 @@ sleep:
usleep(wait); usleep(wait);
} }
close: close:
closesocket(controlSocket); if (haveControlSocket)
closesocket(controlSocket);
if (*do_exit) if (*do_exit)
{ {
closesocket(listensocket); closesocket(listensocket);

View File

@ -1703,7 +1703,7 @@ int rtlsdr_set_tuner_sideband(rtlsdr_dev_t *dev, int sideband)
if (r) if (r)
{ {
if ( devt->verbose ) if ( devt->verbose )
fprintf(stderr, "rtlsdr_set_tuner_sideband(%d): rtlsdr_set_if_freq(%d) returned error %d\n", sideband, iffreq); fprintf(stderr, "rtlsdr_set_tuner_sideband(%d): rtlsdr_set_if_freq(%d) returned error %d\n", sideband, iffreq, r);
return r; return r;
} }
@ -2779,12 +2779,7 @@ int rtlsdr_open(rtlsdr_dev_t **out_dev, uint32_t index)
dev->softagc.rpcNumGains = 0; dev->softagc.rpcNumGains = 0;
dev->softagc.rpcGainValues = NULL; dev->softagc.rpcGainValues = NULL;
/* -cs- */ pthread_mutex_init(&dev->cs_mutex, NULL);
#ifdef __MINGW32__
dev->cs_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER;
#else
dev->cs_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
#endif
/* UDP controller server */ /* UDP controller server */
#ifdef WITH_UDP_SERVER #ifdef WITH_UDP_SERVER
@ -3000,6 +2995,7 @@ int rtlsdr_close(rtlsdr_dev_t *dev)
} }
softagc_uninit(dev); softagc_uninit(dev);
pthread_mutex_destroy(&dev->cs_mutex);
libusb_release_interface(dev->devh, 0); libusb_release_interface(dev->devh, 0);

View File

@ -462,7 +462,7 @@ static void *command_worker(void *arg)
struct ir_thread_data struct ir_thread_data
{ {
rtlsdr_dev_t *dev; rtlsdr_dev_t *dev;
SOCKET port; int port;
int wait; int wait;
char *addr; char *addr;
}; };