diff options
Diffstat (limited to 'src/transport')
65 files changed, 7348 insertions, 6817 deletions
diff --git a/src/transport/Makefile.am b/src/transport/Makefile.am index 0692450..b040874 100644 --- a/src/transport/Makefile.am +++ b/src/transport/Makefile.am @@ -61,7 +61,6 @@ UNIX_QUOTA_TEST = test_quota_compliance_unix \ endif noinst_PROGRAMS = \ - $(WLAN_BIN_DUMMY) \ $(WLAN_BIN_SENDER) # gnunet-transport-connect-running-peers @@ -92,11 +91,12 @@ libgnunettransport_la_LIBADD = \ $(GN_LIBINTL) libgnunettransport_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) $(WINFLAGS) \ - -version-info 0:0:0 + -version-info 1:0:0 bin_PROGRAMS = \ gnunet-transport \ $(WLAN_BIN) \ + $(WLAN_BIN_DUMMY) \ gnunet-service-transport \ gnunet-transport-certificate-creation diff --git a/src/transport/Makefile.in b/src/transport/Makefile.in index 36df686..b5f2c64 100644 --- a/src/transport/Makefile.in +++ b/src/transport/Makefile.in @@ -37,9 +37,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -noinst_PROGRAMS = $(am__EXEEXT_21) $(am__EXEEXT_22) +noinst_PROGRAMS = $(am__EXEEXT_22) bin_PROGRAMS = gnunet-transport$(EXEEXT) $(am__EXEEXT_1) \ - gnunet-service-transport$(EXEEXT) \ + $(am__EXEEXT_2) gnunet-service-transport$(EXEEXT) \ gnunet-transport-certificate-creation$(EXEEXT) check_PROGRAMS = test_transport_testing$(EXEEXT) \ test_transport_startonly$(EXEEXT) \ @@ -53,22 +53,22 @@ check_PROGRAMS = test_transport_testing$(EXEEXT) \ test_transport_api_limited_sockets_tcp$(EXEEXT) \ test_transport_api_tcp_nat$(EXEEXT) \ test_transport_api_udp$(EXEEXT) \ - test_transport_api_timeout_udp$(EXEEXT) $(am__EXEEXT_2) \ - $(am__EXEEXT_3) test_transport_api_udp_nat$(EXEEXT) \ - $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \ - $(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \ + test_transport_api_timeout_udp$(EXEEXT) $(am__EXEEXT_3) \ + $(am__EXEEXT_4) test_transport_api_udp_nat$(EXEEXT) \ + $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \ + $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \ test_transport_api_multi$(EXEEXT) \ test_transport_api_reliability_tcp$(EXEEXT) \ test_transport_api_reliability_tcp_nat$(EXEEXT) \ test_transport_api_unreliability_udp$(EXEEXT) \ test_transport_api_unreliability_constant_udp$(EXEEXT) \ - $(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \ - $(am__EXEEXT_13) $(am__EXEEXT_14) \ + $(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \ + $(am__EXEEXT_14) $(am__EXEEXT_15) \ test_quota_compliance_tcp$(EXEEXT) \ test_quota_compliance_tcp_asymmetric$(EXEEXT) \ - test_quota_compliance_udp$(EXEEXT) $(am__EXEEXT_15) \ - $(am__EXEEXT_16) $(am__EXEEXT_17) $(am__EXEEXT_18) \ - $(am__EXEEXT_19) $(am__EXEEXT_20) + test_quota_compliance_udp$(EXEEXT) $(am__EXEEXT_16) \ + $(am__EXEEXT_17) $(am__EXEEXT_18) $(am__EXEEXT_19) \ + $(am__EXEEXT_20) $(am__EXEEXT_21) @ENABLE_TEST_RUN_TRUE@TESTS = test_transport_testing$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_startonly$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_blacklisting$(EXEEXT) \ @@ -82,25 +82,25 @@ check_PROGRAMS = test_transport_testing$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_tcp_nat$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_udp$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_timeout_udp$(EXEEXT) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_2) $(am__EXEEXT_3) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_3) $(am__EXEEXT_4) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_udp_nat$(EXEEXT) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_4) $(am__EXEEXT_5) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_6) $(am__EXEEXT_7) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_8) $(am__EXEEXT_9) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_5) $(am__EXEEXT_6) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_7) $(am__EXEEXT_8) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_9) $(am__EXEEXT_10) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_multi$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_reliability_tcp$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_reliability_tcp_nat$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_unreliability_udp$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_transport_api_unreliability_constant_udp$(EXEEXT) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_10) $(am__EXEEXT_11) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_12) $(am__EXEEXT_13) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_14) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_11) $(am__EXEEXT_12) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_13) $(am__EXEEXT_14) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_15) \ @ENABLE_TEST_RUN_TRUE@ test_quota_compliance_tcp$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_quota_compliance_tcp_asymmetric$(EXEEXT) \ @ENABLE_TEST_RUN_TRUE@ test_quota_compliance_udp$(EXEEXT) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_15) $(am__EXEEXT_16) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_17) $(am__EXEEXT_18) \ -@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_19) $(am__EXEEXT_20) +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_16) $(am__EXEEXT_17) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_18) $(am__EXEEXT_19) \ +@ENABLE_TEST_RUN_TRUE@ $(am__EXEEXT_20) $(am__EXEEXT_21) subdir = src/transport DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/transport.conf.in @@ -279,37 +279,37 @@ libgnunettransporttesting_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_CFLAGS) $(CFLAGS) $(libgnunettransporttesting_la_LDFLAGS) \ $(LDFLAGS) -o $@ @LINUX_TRUE@am__EXEEXT_1 = gnunet-helper-transport-wlan$(EXEEXT) -@MINGW_FALSE@am__EXEEXT_2 = test_transport_api_unix$(EXEEXT) -@MINGW_FALSE@am__EXEEXT_3 = test_transport_api_timeout_unix$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_4 = test_transport_api_http$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_5 = test_transport_api_http_nat$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_6 = \ +@LINUX_TRUE@am__EXEEXT_2 = \ +@LINUX_TRUE@ gnunet-helper-transport-wlan-dummy$(EXEEXT) +@MINGW_FALSE@am__EXEEXT_3 = test_transport_api_unix$(EXEEXT) +@MINGW_FALSE@am__EXEEXT_4 = test_transport_api_timeout_unix$(EXEEXT) +@HAVE_MHD_TRUE@am__EXEEXT_5 = test_transport_api_http$(EXEEXT) +@HAVE_MHD_TRUE@am__EXEEXT_6 = test_transport_api_http_nat$(EXEEXT) +@HAVE_MHD_TRUE@am__EXEEXT_7 = \ @HAVE_MHD_TRUE@ test_transport_api_timeout_http$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_7 = test_transport_api_https$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_8 = test_transport_api_https_nat$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_9 = \ +@HAVE_MHD_TRUE@am__EXEEXT_8 = test_transport_api_https$(EXEEXT) +@HAVE_MHD_TRUE@am__EXEEXT_9 = test_transport_api_https_nat$(EXEEXT) +@HAVE_MHD_TRUE@am__EXEEXT_10 = \ @HAVE_MHD_TRUE@ test_transport_api_timeout_https$(EXEEXT) -@MINGW_FALSE@am__EXEEXT_10 = \ +@MINGW_FALSE@am__EXEEXT_11 = \ @MINGW_FALSE@ test_transport_api_unreliability_unix$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_11 = \ +@HAVE_MHD_TRUE@am__EXEEXT_12 = \ @HAVE_MHD_TRUE@ test_transport_api_reliability_http$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_12 = test_transport_api_reliability_http_nat$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_13 = \ +@HAVE_MHD_TRUE@am__EXEEXT_13 = test_transport_api_reliability_http_nat$(EXEEXT) +@HAVE_MHD_TRUE@am__EXEEXT_14 = \ @HAVE_MHD_TRUE@ test_transport_api_reliability_https$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_14 = test_transport_api_reliability_https_nat$(EXEEXT) -@MINGW_FALSE@am__EXEEXT_15 = test_quota_compliance_unix$(EXEEXT) \ +@HAVE_MHD_TRUE@am__EXEEXT_15 = test_transport_api_reliability_https_nat$(EXEEXT) +@MINGW_FALSE@am__EXEEXT_16 = test_quota_compliance_unix$(EXEEXT) \ @MINGW_FALSE@ test_quota_compliance_unix_asymmetric$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_16 = test_quota_compliance_http$(EXEEXT) \ +@HAVE_MHD_TRUE@am__EXEEXT_17 = test_quota_compliance_http$(EXEEXT) \ @HAVE_MHD_TRUE@ test_quota_compliance_http_asymmetric$(EXEEXT) -@HAVE_MHD_TRUE@am__EXEEXT_17 = test_quota_compliance_https$(EXEEXT) \ +@HAVE_MHD_TRUE@am__EXEEXT_18 = test_quota_compliance_https$(EXEEXT) \ @HAVE_MHD_TRUE@ test_quota_compliance_https_asymmetric$(EXEEXT) -@LINUX_TRUE@am__EXEEXT_18 = test_transport_api_wlan$(EXEEXT) -@LINUX_TRUE@am__EXEEXT_19 = \ -@LINUX_TRUE@ test_transport_api_reliability_wlan$(EXEEXT) +@LINUX_TRUE@am__EXEEXT_19 = test_transport_api_wlan$(EXEEXT) @LINUX_TRUE@am__EXEEXT_20 = \ -@LINUX_TRUE@ test_transport_api_unreliability_wlan$(EXEEXT) +@LINUX_TRUE@ test_transport_api_reliability_wlan$(EXEEXT) @LINUX_TRUE@am__EXEEXT_21 = \ -@LINUX_TRUE@ gnunet-helper-transport-wlan-dummy$(EXEEXT) +@LINUX_TRUE@ test_transport_api_unreliability_wlan$(EXEEXT) @LINUX_TRUE@am__EXEEXT_22 = gnunet-transport-wlan-sender$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_gnunet_helper_transport_wlan_OBJECTS = \ @@ -947,6 +947,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JAVAPORT = @JAVAPORT@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBADD_DL = @LIBADD_DL@ @@ -980,6 +981,7 @@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ +MONKEYPREFIX = @MONKEYPREFIX@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ @@ -1169,7 +1171,7 @@ libgnunettransport_la_LIBADD = \ libgnunettransport_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) $(WINFLAGS) \ - -version-info 0:0:0 + -version-info 1:0:0 #bin_SCRIPTS = \ diff --git a/src/transport/gnunet-helper-transport-wlan-dummy.c b/src/transport/gnunet-helper-transport-wlan-dummy.c index 6fff758..a7015ac 100644 --- a/src/transport/gnunet-helper-transport-wlan-dummy.c +++ b/src/transport/gnunet-helper-transport-wlan-dummy.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2010 Christian Grothoff (and other contributing authors) + (C) 2010, 2012 Christian Grothoff (and other contributing authors) GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -27,22 +27,60 @@ #include "gnunet_util_lib.h" #include "plugin_transport_wlan.h" -#define FIFO_FILE1 "/tmp/test-transport/api-wlan-p1/WLAN_FIFO_in" -#define FIFO_FILE2 "/tmp/test-transport/api-wlan-p1/WLAN_FIFO_out" +/** + * 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" + +/** + * 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" +/** + * Maximum size of a message allowed in either direction + * (used for our receive and sent buffers). + */ #define MAXLINE 4096 -struct sendbuf + +/** + * IO buffer used for buffering data in transit. + */ +struct SendBuffer { - unsigned int pos; - unsigned int size; + + /** + * How many bytes that were stored in 'buf' did we already write to the + * destination? Always smaller than 'size'. + */ + size_t pos; + + /** + * How many bytes of data are stored in 'buf' for transmission right now? + * Data always starts at offset 0 and extends to 'size'. + */ + size_t size; + + /** + * Buffered data; twice the maximum allowed message size as we add some + * headers. + */ char buf[MAXLINE * 2]; }; -static int first; +/** + * Flag set to 1 if we are to terminate, otherwise 0. + */ static int closeprog; + +/** + * We're being killed, clean up. + * + * @param sig killing signal + */ static void sigfunc (int sig) { @@ -53,7 +91,8 @@ sigfunc (int sig) /** - * function to create GNUNET_MESSAGE_TYPE_WLAN_HELPER_CONTROL message for plugin + * Create control message for plugin + * * @param buffer pointer to buffer for the message * @param mac pointer to the mac address * @return number of bytes written @@ -67,83 +106,90 @@ send_mac_to_plugin (char *buffer, struct GNUNET_TRANSPORT_WLAN_MacAddress *mac) 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)); return sizeof (struct GNUNET_TRANSPORT_WLAN_HelperControlMessage); } -static void + +/** + * We got a message from the FIFO, check it, convert the message + * 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 + */ +static int stdin_send (void *cls, void *client, const struct GNUNET_MessageHeader *hdr) { - struct sendbuf *write_pout = cls; - int sendsize; - struct GNUNET_MessageHeader newheader; - char *to_data; - char *to_radiotap; - char *to_start; - - sendsize = - ntohs (hdr->size) - sizeof (struct Radiotap_Send) + - sizeof (struct Radiotap_rx); - - if (GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA != ntohs (hdr->type)) + struct SendBuffer *write_pout = cls; + const struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *in; + size_t payload_size; + struct GNUNET_TRANSPORT_WLAN_RadiotapReceiveMessage newheader; + uint16_t sendsize; + + sendsize = ntohs (hdr->size); + in = (const struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage *) hdr; + if ( (GNUNET_MESSAGE_TYPE_WLAN_DATA_TO_HELPER != ntohs (hdr->type)) || + (sizeof (struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage) > sendsize) ) { - fprintf (stderr, "Function stdin_send: wrong packet type\n"); + FPRINTF (stderr, "%s", "Received malformed message\n"); exit (1); } - if ((sendsize + write_pout->size) > MAXLINE * 2) + payload_size = sendsize - sizeof (struct GNUNET_TRANSPORT_WLAN_RadiotapSendMessage); + if ((payload_size + sizeof (struct GNUNET_TRANSPORT_WLAN_RadiotapReceiveMessage) + write_pout->size) > MAXLINE * 2) { - fprintf (stderr, "Function stdin_send: Packet too big for buffer\n"); + FPRINTF (stderr, "%s", "Packet too big for buffer\n"); exit (1); } - - newheader.size = htons (sendsize); - newheader.type = htons (GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA); - - to_start = write_pout->buf + write_pout->size; - memcpy (to_start, &newheader, sizeof (struct GNUNET_MessageHeader)); - write_pout->size += sizeof (struct GNUNET_MessageHeader); - - to_radiotap = to_start + sizeof (struct GNUNET_MessageHeader); - memset (to_radiotap, 0, sizeof (struct Radiotap_rx)); - write_pout->size += sizeof (struct Radiotap_rx); - - to_data = to_radiotap + sizeof (struct Radiotap_rx); - memcpy (to_data, - ((char *) hdr) + sizeof (struct Radiotap_Send) + - sizeof (struct GNUNET_MessageHeader), - ntohs (hdr->size) - sizeof (struct Radiotap_Send) - - sizeof (struct GNUNET_MessageHeader)); - write_pout->size += - ntohs (hdr->size) - sizeof (struct Radiotap_Send) - - sizeof (struct GNUNET_MessageHeader); + memset (&newheader, 0, sizeof (newheader)); + 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, + &newheader, + sizeof (newheader)); + write_pout->size += sizeof (newheader); + memcpy (write_pout->buf + write_pout->size, + &in[1], + payload_size); + write_pout->size += payload_size; + return GNUNET_OK; } -static void +/** + * 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 + */ +static int file_in_send (void *cls, void *client, const struct GNUNET_MessageHeader *hdr) { - struct sendbuf *write_std = cls; + struct SendBuffer *write_std = cls; uint16_t sendsize; sendsize = ntohs (hdr->size); - - if (GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA != ntohs (hdr->type)) - { - fprintf (stderr, "Function file_in_send: wrong packet type\n"); - exit (1); - } if ((sendsize + write_std->size) > MAXLINE * 2) { - fprintf (stderr, "Function file_in_send: Packet too big for buffer\n"); + FPRINTF (stderr, "%s", "Packet too big for buffer\n"); exit (1); } - memcpy (write_std->buf + write_std->size, hdr, sendsize); write_std->size += sendsize; + return GNUNET_OK; } +/** + * Main function of a program that pretends to be a WLAN card. + * + * @param argc should be 2 + * @param argv either '1' or '2', depending on which of the two cards this dummy is to emulate + * @return 1 on error, 0 if terminated normally via signal + */ int main (int argc, char *argv[]) { @@ -154,105 +200,104 @@ main (int argc, char *argv[]) int fdpin; int fdpout; char readbuf[MAXLINE]; - int readsize = 0; - struct sendbuf write_std; - struct sendbuf write_pout; - int ret = 0; - int maxfd = 0; + int readsize; + struct SendBuffer write_std; + struct SendBuffer write_pout; + int ret; + int maxfd; fd_set rfds; fd_set wfds; struct timeval tv; int retval; - struct GNUNET_SERVER_MessageStreamTokenizer *stdin_mst; - struct GNUNET_SERVER_MessageStreamTokenizer *file_in_mst; + struct GNUNET_SERVER_MessageStreamTokenizer *stdin_mst = NULL; + struct GNUNET_SERVER_MessageStreamTokenizer *file_in_mst = NULL; struct GNUNET_TRANSPORT_WLAN_MacAddress macaddr; + int first; - if (2 != argc) + if ( (2 != argc) || + ((0 != strcmp (argv[1], "1")) && (0 != strcmp (argv[1], "2"))) ) { - fprintf (stderr, - "This program must be started with the operating mode (1 or 2) as the only argument.\n"); + FPRINTF (stderr, + "%s", + "This program must be started with the operating mode (1 or 2) as the only argument.\n"); return 1; } - if ((0 != strstr (argv[1], "1")) && (0 != strstr (argv[1], "2"))) - return 1; - //make the fifos if needed - if (0 != stat (FIFO_FILE1, &st)) + /* make the fifos if needed */ + umask (0); + if ( (GNUNET_OK != GNUNET_DISK_directory_create_for_file (FIFO_FILE1)) || + (GNUNET_OK != GNUNET_DISK_directory_create_for_file (FIFO_FILE2)) ) { - if (0 == stat (FIFO_FILE2, &st)) - { - fprintf (stderr, "FIFO_FILE2 exists, but FIFO_FILE1 not\n"); - exit (1); - } - umask (0); - erg = mkfifo (FIFO_FILE1, 0666); - if (0 != erg) |