- nc = GNUNET_SERVER_notification_context_create (server, 1);
- GNUNET_SERVER_add_handlers (server, handlers);
- GNUNET_SERVER_disconnect_notify (server, &client_disconnect, NULL);
- GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL);
-}
-
-
-/**
- * The main function for the service.
- *
- * @param argc number of arguments from the command line
- * @param argv command line arguments
- * @return 0 ok, 1 on error
- */
-int
-main (int argc, char *const *argv)
-{
- return (GNUNET_OK ==
- GNUNET_SERVICE_run (argc, argv, "social",
- GNUNET_SERVICE_OPTION_NONE,
- &run, NULL)) ? 0 : 1;
-}
+ GNUNET_SCHEDULER_add_shutdown (shutdown_task, NULL);
+}
+
+
+/**
+ * Define "main" method using service macro.
+ */
+GNUNET_SERVICE_MAIN
+("social",
+ GNUNET_SERVICE_OPTION_NONE,
+ run,
+ client_notify_connect,
+ client_notify_disconnect,
+ NULL,
+ GNUNET_MQ_hd_var_size (client_host_enter,
+ GNUNET_MESSAGE_TYPE_SOCIAL_HOST_ENTER,
+ struct HostEnterRequest,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_guest_enter,
+ GNUNET_MESSAGE_TYPE_SOCIAL_GUEST_ENTER,
+ struct GuestEnterRequest,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_guest_enter_by_name,
+ GNUNET_MESSAGE_TYPE_SOCIAL_GUEST_ENTER_BY_NAME,
+ struct GuestEnterByNameRequest,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_join_decision,
+ GNUNET_MESSAGE_TYPE_PSYC_JOIN_DECISION,
+ struct GNUNET_PSYC_JoinDecisionMessage,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_psyc_message,
+ GNUNET_MESSAGE_TYPE_PSYC_MESSAGE,
+ struct GNUNET_MessageHeader,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_history_replay,
+ GNUNET_MESSAGE_TYPE_PSYC_HISTORY_REPLAY,
+ struct GNUNET_PSYC_HistoryRequestMessage,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_state_get,
+ GNUNET_MESSAGE_TYPE_PSYC_STATE_GET,
+ struct GNUNET_PSYC_StateRequestMessage,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_state_get_prefix,
+ GNUNET_MESSAGE_TYPE_PSYC_STATE_GET_PREFIX,
+ struct GNUNET_PSYC_StateRequestMessage,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_zone_add_place,
+ GNUNET_MESSAGE_TYPE_SOCIAL_ZONE_ADD_PLACE,
+ struct ZoneAddPlaceRequest,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_zone_add_nym,
+ GNUNET_MESSAGE_TYPE_SOCIAL_ZONE_ADD_NYM,
+ struct ZoneAddNymRequest,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_app_connect,
+ GNUNET_MESSAGE_TYPE_SOCIAL_APP_CONNECT,
+ struct AppConnectRequest,
+ NULL),
+ GNUNET_MQ_hd_fixed_size (client_app_detach,
+ GNUNET_MESSAGE_TYPE_SOCIAL_APP_DETACH,
+ struct AppDetachRequest,
+ NULL),
+ GNUNET_MQ_hd_fixed_size (client_place_leave,
+ GNUNET_MESSAGE_TYPE_SOCIAL_PLACE_LEAVE,
+ struct GNUNET_MessageHeader,
+ NULL),
+ GNUNET_MQ_hd_var_size (client_msg_proc_set,
+ GNUNET_MESSAGE_TYPE_SOCIAL_MSG_PROC_SET,
+ struct MsgProcRequest,
+ NULL),
+ GNUNET_MQ_hd_fixed_size (client_msg_proc_clear,
+ GNUNET_MESSAGE_TYPE_SOCIAL_MSG_PROC_CLEAR,
+ struct GNUNET_MessageHeader,
+ NULL));