[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r18381 - libmwmodem/src/main
From: |
gnunet |
Subject: |
[GNUnet-SVN] r18381 - libmwmodem/src/main |
Date: |
Tue, 29 Nov 2011 17:47:44 +0100 |
Author: ruppa
Date: 2011-11-29 17:47:44 +0100 (Tue, 29 Nov 2011)
New Revision: 18381
Modified:
libmwmodem/src/main/libmwmodem.c
Log:
Bug fixes at init and run functions
AUTHOR: Christian Rupp
DATE: 2011-11-29
Modified: libmwmodem/src/main/libmwmodem.c
===================================================================
--- libmwmodem/src/main/libmwmodem.c 2011-11-29 16:34:20 UTC (rev 18380)
+++ libmwmodem/src/main/libmwmodem.c 2011-11-29 16:47:44 UTC (rev 18381)
@@ -24,17 +24,12 @@
#include <malloc.h>
#include <netinet/in.h>
#include <string.h>
+#include <sys/ioctl.h>
-static union MWAddress
-{
- const struct sockaddr_in address4;
- const struct sockaddr_in6 address6;
-};
-
struct MWMODEM_Context * MWMODEM_init (uint16_t port, int af_int,
MWMODEM_InformationCallback *cb, void *cb_cls)
{
struct MWMODEM_Context *context;
- struct MWAddress address;
+ const struct sockaddr *address;
struct sockaddr_in address4;
struct sockaddr_in6 address6;
@@ -52,7 +47,7 @@
if (-1 == context->socket)
{
- fprintf(stderr, "Error no socket created: %s", strerror(errno));
+ fprintf(stderr, "Error no socket created: %s", strerror(0));
free (context);
return;
}
@@ -60,47 +55,41 @@
if (af_int==AF_INET)
{
- memset (&adress4, 0, sizeof(adress4));
- adress4->sin_family = af_int;
- // ->sin_len field on FreeBSD not set!
+ memset (&address4, 0, sizeof(address4));
+ address4.sin_family = af_int;
if (port == 0)
{
- address4->sin_port = htons(MWMODEM_PORT);
+ address4.sin_port = htons(MWMODEM_PORT);
}
else
{
- address4->sin_port = htons(port);
+ address4.sin_port = htons(port);
}
- address = address4;
+ address =(const struct sockaddr *) &address4;
}
else
{
memset( &address6, 0, sizeof (address6));
- (*adress6).sin6_family = af_int;
+ address6.sin6_family = af_int;
if (port == 0)
{
- address6->sin6_port = htons(MWMODEM_PORT);
+ address6.sin6_port = htons(MWMODEM_PORT);
}
else
{
- address6->sin6_port = htons(port);
+ address6.sin6_port = htons(port);
}
- adress = address6;
+ address =(const struct sockaddr *) &address6;
}
-
- if (-1==bind(context->socket, adress6, sizeof(address)))// check return
value!
+
+ if (-1==bind(context->socket, address, sizeof(address4)))// check
return value!
{
fprintf(stderr, "The port bind have produced a
failure!");//Failure messafe TODO
- //LEAK!
free(context);
return;
}
- free (address);
- free (address4);
- free (address6);
-
return context;
}
@@ -152,11 +141,11 @@
struct MWChannel *chl;
int package_length;
- octl(context->socket, FIONREAD, &package_length);
+ octl(fc->socket, FIONREAD, &package_length);
if (package_length==0)
{
- fprintf(sderr, "Error no message to receive!");
+ fprintf(stderr, "Error no message to receive!");
return;
}
@@ -235,7 +224,7 @@
package->channel = list;
- (&fc->cb)(fc->cls, package);
+ (*fc->cb)(fc->cls, package);
}
void MWMODEM_free (struct MWMODEM_Context *fc)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r18381 - libmwmodem/src/main,
gnunet <=