/*
This file is part of GNUnet.
- (C) 2010, 2012 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2010, 2012 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file transport/gnunet-helper-transport-wlan-dummy.c
/**
* Name of the fifo to use for IPC with the other dummy process.
*/
-#define FIFO_FILE1 "/tmp/test-transport/api-wlan-p1/WLAN_FIFO_in"
+#define FIFO_FILE1 GNUNET_DISK_mktemp("test-transport/api-wlan-p1/") "WLAN_FIFO_in"
/**
* Name of the fifo to use for IPC with the other dummy process.
*/
-#define FIFO_FILE2 "/tmp/test-transport/api-wlan-p1/WLAN_FIFO_out"
+#define FIFO_FILE2 GNUNET_DISK_mktemp("test-transport/api-wlan-p1/") "WLAN_FIFO_out"
/**
* Maximum size of a message allowed in either direction
struct GNUNET_TRANSPORT_WLAN_HelperControlMessage macmsg;
- memcpy (&macmsg.mac, (char *) mac, sizeof (struct GNUNET_TRANSPORT_WLAN_MacAddress));
+ GNUNET_memcpy (&macmsg.mac,
+ (char *) mac,
+ sizeof (struct GNUNET_TRANSPORT_WLAN_MacAddress));
macmsg.hdr.size = htons (sizeof (struct GNUNET_TRANSPORT_WLAN_HelperControlMessage));
macmsg.hdr.type = htons (GNUNET_MESSAGE_TYPE_WLAN_HELPER_CONTROL);
- memcpy (buffer, &macmsg, sizeof (struct GNUNET_TRANSPORT_WLAN_HelperControlMessage));
+ GNUNET_memcpy (buffer,
+ &macmsg,
+ sizeof (struct GNUNET_TRANSPORT_WLAN_HelperControlMessage));
return sizeof (struct GNUNET_TRANSPORT_WLAN_HelperControlMessage);
}
* type to the output forward and copy it to the buffer for stdout.
*
* @param cls the 'struct SendBuffer' to copy the converted message to
- * @param client unused
* @param hdr inbound message from the FIFO
+ * @return #GNUNET_OK on success,
+ * #GNUNET_NO to stop further processing (no error)
+ * #GNUNET_SYSERR to stop further processing with error
*/
static int
-stdin_send (void *cls, void *client, const struct GNUNET_MessageHeader *hdr)
+stdin_send (void *cls,
+ const struct GNUNET_MessageHeader *hdr)
{
struct SendBuffer *write_pout = cls;
const struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *in;
newheader.header.size = htons (payload_size + sizeof (newheader));
newheader.header.type = htons (GNUNET_MESSAGE_TYPE_WLAN_DATA_FROM_HELPER);
newheader.frame = in->frame;
- memcpy (write_pout->buf + write_pout->size,
+ GNUNET_memcpy (write_pout->buf + write_pout->size,
&newheader,
sizeof (newheader));
write_pout->size += sizeof (newheader);
- memcpy (write_pout->buf + write_pout->size,
+ GNUNET_memcpy (write_pout->buf + write_pout->size,
&in[1],
payload_size);
write_pout->size += payload_size;
* We read a full message from stdin. Copy it to our send buffer.
*
* @param cls the 'struct SendBuffer' to copy to
- * @param client unused
* @param hdr the message we received to copy to the buffer
+ * @return #GNUNET_OK on success,
+ * #GNUNET_NO to stop further processing (no error)
+ * #GNUNET_SYSERR to stop further processing with error
*/
static int
-file_in_send (void *cls, void *client, const struct GNUNET_MessageHeader *hdr)
+file_in_send (void *cls,
+ const struct GNUNET_MessageHeader *hdr)
{
struct SendBuffer *write_std = cls;
uint16_t sendsize;
FPRINTF (stderr, "%s", "Packet too big for buffer\n");
exit (1);
}
- memcpy (write_std->buf + write_std->size, hdr, sendsize);
+ GNUNET_memcpy (write_std->buf + write_std->size, hdr, sendsize);
write_std->size += sendsize;
return GNUNET_OK;
}
fd_set wfds;
struct timeval tv;
int retval;
- struct GNUNET_SERVER_MessageStreamTokenizer *stdin_mst = NULL;
- struct GNUNET_SERVER_MessageStreamTokenizer *file_in_mst = NULL;
+ struct GNUNET_MessageStreamTokenizer *stdin_mst = NULL;
+ struct GNUNET_MessageStreamTokenizer *file_in_mst = NULL;
struct GNUNET_TRANSPORT_WLAN_MacAddress macaddr;
int first;
if ( (GNUNET_OK != GNUNET_DISK_directory_create_for_file (FIFO_FILE1)) ||
(GNUNET_OK != GNUNET_DISK_directory_create_for_file (FIFO_FILE2)) )
{
- FPRINTF (stderr, "Failed to create directory for file `%s'\n", FIFO_FILE1);
+ FPRINTF (stderr,
+ "Failed to create directory for file `%s'\n",
+ FIFO_FILE1);
return 1;
}
if (0 == strcmp (argv[1], "1") )
erg = mkfifo (FIFO_FILE1, 0666);
if ( (0 != erg) && (EEXIST != errno) )
FPRINTF (stderr, "Error in mkfifo(%s): %s\n", FIFO_FILE1,
- strerror (errno));
+ strerror (errno));
}
}
else
{
if (0 != stat (FIFO_FILE2, &st))
{
- erg = mkfifo (FIFO_FILE2, 0666);
+ GNUNET_break (0 == (erg = mkfifo (FIFO_FILE2, 0666)));
if ( (0 != erg) && (EEXIST != errno) )
- FPRINTF (stderr, "Error in mkfifo(%s): %s\n", FIFO_FILE2,
+ FPRINTF (stderr,
+ "Error in mkfifo(%s): %s\n",
+ FIFO_FILE2,
strerror (errno));
}
}
fpin = fopen (FIFO_FILE1, "r");
if (NULL == fpin)
{
- FPRINTF (stderr, "fopen of read FIFO_FILE1 failed: %s\n", STRERROR (errno));
+ FPRINTF (stderr,
+ "fopen of read FIFO_FILE1 failed: %s\n",
+ STRERROR (errno));
goto end;
}
if (NULL == (fpout = fopen (FIFO_FILE2, "w")))
{
- erg = mkfifo (FIFO_FILE2, 0666);
+ GNUNET_break (0 == mkfifo (FIFO_FILE2, 0666));
fpout = fopen (FIFO_FILE2, "w");
}
if (NULL == fpout)
{
- FPRINTF (stderr, "fopen of write FIFO_FILE2 failed: %s\n", STRERROR (errno));
+ FPRINTF (stderr,
+ "fopen of write FIFO_FILE2 failed: %s\n",
+ STRERROR (errno));
goto end;
}
}
first = 0;
if (NULL == (fpout = fopen (FIFO_FILE1, "w")))
{
- erg = mkfifo (FIFO_FILE1, 0666);
+ GNUNET_break (0 == mkfifo (FIFO_FILE1, 0666));
fpout = fopen (FIFO_FILE1, "w");
}
if (NULL == fpout)
{
- FPRINTF (stderr, "fopen of write FIFO_FILE1 failed: %s\n", STRERROR (errno));
+ FPRINTF (stderr,
+ "fopen of write FIFO_FILE1 failed: %s\n",
+ STRERROR (errno));
goto end;
}
fpin = fopen (FIFO_FILE2, "r");
if (NULL == fpin)
{
- FPRINTF (stderr, "fopen of read FIFO_FILE2 failed: %s\n", STRERROR (errno));
+ FPRINTF (stderr,
+ "fopen of read FIFO_FILE2 failed: %s\n",
+ STRERROR (errno));
goto end;
}
}
GNUNET_assert (fpin >= 0);
if (fdpin >= FD_SETSIZE)
{
- FPRINTF (stderr, "File fdpin number too large (%d > %u)\n", fdpin,
+ FPRINTF (stderr,
+ "File fdpin number too large (%d > %u)\n",
+ fdpin,
(unsigned int) FD_SETSIZE);
goto end;
}
if (fdpout >= FD_SETSIZE)
{
- FPRINTF (stderr, "File fdpout number too large (%d > %u)\n", fdpout,
+ FPRINTF (stderr,
+ "File fdpout number too large (%d > %u)\n",
+ fdpout,
(unsigned int) FD_SETSIZE);
goto end;
}
signal (SIGINT, &sigfunc);
signal (SIGTERM, &sigfunc);
+ signal (GNUNET_TERM_SIG, &sigfunc);
write_std.size = 0;
write_std.pos = 0;
write_pout.size = 0;
write_pout.pos = 0;
- stdin_mst = GNUNET_SERVER_mst_create (&stdin_send, &write_pout);
- file_in_mst = GNUNET_SERVER_mst_create (&file_in_send, &write_std);
+ stdin_mst = GNUNET_MST_create (&stdin_send, &write_pout);
+ file_in_mst = GNUNET_MST_create (&file_in_send, &write_std);
/* Send 'random' mac address */
macaddr.mac[0] = 0x13;
}
else if (0 < readsize)
{
- GNUNET_SERVER_mst_receive (stdin_mst, NULL, readbuf, readsize,
- GNUNET_NO, GNUNET_NO);
+ GNUNET_MST_from_buffer (stdin_mst,
+ readbuf, readsize,
+ GNUNET_NO, GNUNET_NO);
}
else
}
else if (0 < readsize)
{
- GNUNET_SERVER_mst_receive (file_in_mst, NULL, readbuf, readsize,
- GNUNET_NO, GNUNET_NO);
+ GNUNET_MST_from_buffer (file_in_mst,
+ readbuf, readsize,
+ GNUNET_NO, GNUNET_NO);
}
else
{
end:
/* clean up */
if (NULL != stdin_mst)
- GNUNET_SERVER_mst_destroy (stdin_mst);
+ GNUNET_MST_destroy (stdin_mst);
if (NULL != file_in_mst)
- GNUNET_SERVER_mst_destroy (file_in_mst);
+ GNUNET_MST_destroy (file_in_mst);
if (NULL != fpout)
fclose (fpout);