1/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
2/* dbus-nonce.h  Nonce handling functions used by nonce-tcp (internal to D-Bus implementation)
3 *
4 * Copyright (C) 2009 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.net
5 *
6 * Licensed under the Academic Free License version 2.1
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21 *
22 */
23#ifndef DBUS_NONCE_H
24#define DBUS_NONCE_H
25
26#include <dbus/dbus-macros.h>
27#include <dbus/dbus-types.h>
28#include <dbus/dbus-errors.h>
29#include <dbus/dbus-string.h>
30
31DBUS_BEGIN_DECLS
32
33typedef struct DBusNonceFile DBusNonceFile;
34
35struct DBusNonceFile
36{
37  DBusString path;
38  DBusString dir;
39};
40
41// server
42
43dbus_bool_t _dbus_noncefile_create (DBusNonceFile *noncefile,
44                                    DBusError *error);
45
46dbus_bool_t _dbus_noncefile_delete (DBusNonceFile *noncefile,
47                                    DBusError *error);
48
49dbus_bool_t _dbus_noncefile_check_nonce (int fd,
50                                         const DBusNonceFile *noncefile,
51                                         DBusError *error);
52
53const DBusString* _dbus_noncefile_get_path (const DBusNonceFile *noncefile);
54
55int _dbus_accept_with_noncefile (int listen_fd,
56                                 const DBusNonceFile *noncefile);
57
58// shared
59
60dbus_bool_t _dbus_read_nonce (const DBusString *fname,
61                              DBusString *nonce,
62                              DBusError *error);
63
64// client
65
66dbus_bool_t _dbus_send_nonce (int fd,
67                              const DBusString *noncefile,
68                              DBusError *error);
69
70DBUS_END_DECLS
71
72#endif /* DBUS_NONCE_H */
73