2 This file is part of GNUnet.
3 (C) 2009 Christian Grothoff (and other contributing authors)
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 2, or (at your
8 option) any later version.
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
22 * @file statistics/gnunet-service-fs.c
23 * @brief program that provides the file-sharing service
24 * @author Christian Grothoff
27 #include "gnunet_protocols.h"
28 #include "gnunet_core_service.h"
29 #include "gnunet_datastore_service.h"
30 #include "gnunet_util_lib.h"
39 * @param client identification of the client
40 * @param message the actual message
41 * @return GNUNET_OK to keep the connection open,
42 * GNUNET_SYSERR to close it (signal serious error)
45 handle_xxx (void *cls,
46 struct GNUNET_SERVER_Client *client,
47 const struct GNUNET_MessageHeader *message)
53 * List of handlers for the messages understood by this
56 static struct GNUNET_SERVER_MessageHandler handlers[] = {
57 {&handle_xxx, NULL, GNUNET_MESSAGE_TYPE_FS_INDEX_START, 0},
58 {&handle_xxx, NULL, GNUNET_MESSAGE_TYPE_FS_INDEX_LIST_GET, 0},
59 {&handle_xxx, NULL, GNUNET_MESSAGE_TYPE_FS_UNINDEX, 0},
60 {&handle_xxx, NULL, GNUNET_MESSAGE_TYPE_FS_START_SEARCH, 0},
66 * Process fs requests.
69 * @param sched scheduler to use
70 * @param server the initialized server
71 * @param cfg configuration to use
75 struct GNUNET_SCHEDULER_Handle *sched,
76 struct GNUNET_SERVER_Handle *server,
77 const struct GNUNET_CONFIGURATION_Handle *cfg)
79 GNUNET_SERVER_add_handlers (server, handlers);
80 // FIXME: also handle P2P messages!
85 * The main function for the fs service.
87 * @param argc number of arguments from the command line
88 * @param argv command line arguments
89 * @return 0 ok, 1 on error
92 main (int argc, char *const *argv)
95 GNUNET_SERVICE_run (argc,
97 "fs", &run, NULL, NULL, NULL)) ? 0 : 1;
100 /* end of gnunet-service-fs.c */