File: e2k-global-catalog.h

package info (click to toggle)
evolution-data-server 1.6.3-5etch3
  • links: PTS
  • area: main
  • in suites: etch
  • size: 59,384 kB
  • ctags: 43,218
  • sloc: ansic: 319,315; tcl: 30,499; xml: 19,166; sh: 18,776; perl: 11,529; cpp: 8,259; java: 7,653; makefile: 6,448; awk: 1,338; yacc: 1,103; sed: 772; cs: 505; lex: 134; asm: 14
file content (122 lines) | stat: -rw-r--r-- 3,849 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* Copyright (C) 2001-2004 Novell, Inc. */

#ifndef __E2K_GLOBAL_CATALOG_H__
#define __E2K_GLOBAL_CATALOG_H__

#include <glib-object.h>
#include "e2k-types.h"
#include "e2k-operation.h"

#ifdef __cplusplus
extern "C" {
#pragma }
#endif /* __cplusplus */

#define E2K_TYPE_GLOBAL_CATALOG            (e2k_global_catalog_get_type ())
#define E2K_GLOBAL_CATALOG(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), E2K_TYPE_GLOBAL_CATALOG, E2kGlobalCatalog))
#define E2K_GLOBAL_CATALOG_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), E2K_TYPE_GLOBAL_CATALOG, E2kGlobalCatalogClass))
#define E2K_IS_GLOBAL_CATALOG(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E2K_TYPE_GLOBAL_CATALOG))
#define E2K_IS_GLOBAL_CATALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), E2K_TYPE_GLOBAL_CATALOG))

struct _E2kGlobalCatalog {
	GObject parent;

	char *domain;
	int response_limit;

	E2kGlobalCatalogPrivate *priv;
};

struct _E2kGlobalCatalogClass {
	GObjectClass parent_class;

};

GType             e2k_global_catalog_get_type        (void);
E2kGlobalCatalog *e2k_global_catalog_new             (const char *server,
						      int response_limit,
						      const char *user,
						      const char *domain,
						      const char *password);


typedef enum {
	E2K_GLOBAL_CATALOG_OK,
	E2K_GLOBAL_CATALOG_NO_SUCH_USER,
	E2K_GLOBAL_CATALOG_NO_DATA,
	E2K_GLOBAL_CATALOG_BAD_DATA,
	E2K_GLOBAL_CATALOG_EXISTS,
	E2K_GLOBAL_CATALOG_AUTH_FAILED,
	E2K_GLOBAL_CATALOG_CANCELLED,
	E2K_GLOBAL_CATALOG_ERROR
} E2kGlobalCatalogStatus;

typedef enum {
	E2K_GLOBAL_CATALOG_LOOKUP_BY_EMAIL,
	E2K_GLOBAL_CATALOG_LOOKUP_BY_DN,
	E2K_GLOBAL_CATALOG_LOOKUP_BY_LEGACY_EXCHANGE_DN
} E2kGlobalCatalogLookupType;

typedef enum {
	E2K_GLOBAL_CATALOG_LOOKUP_SID                = (1 << 0),
	E2K_GLOBAL_CATALOG_LOOKUP_EMAIL              = (1 << 1),
	E2K_GLOBAL_CATALOG_LOOKUP_MAILBOX            = (1 << 2),
	E2K_GLOBAL_CATALOG_LOOKUP_LEGACY_EXCHANGE_DN = (1 << 3),
	E2K_GLOBAL_CATALOG_LOOKUP_DELEGATES          = (1 << 4),
	E2K_GLOBAL_CATALOG_LOOKUP_DELEGATORS         = (1 << 5),
	E2K_GLOBAL_CATALOG_LOOKUP_QUOTA		     = (1 << 6),
	E2K_GLOBAL_CATALOG_LOOKUP_ACCOUNT_CONTROL    = (1 << 7)
} E2kGlobalCatalogLookupFlags;

typedef struct {
	char *dn, *display_name;
	E2kSid *sid;
	char *email, *exchange_server, *mailbox, *legacy_exchange_dn;
	GPtrArray *delegates, *delegators;
	int quota_warn, quota_nosend, quota_norecv; 
	int user_account_control;

	E2kGlobalCatalogLookupFlags mask;
} E2kGlobalCatalogEntry;

E2kGlobalCatalogStatus e2k_global_catalog_lookup (E2kGlobalCatalog *gc,
						  E2kOperation     *op,
						  E2kGlobalCatalogLookupType type,
						  const char *key,
						  E2kGlobalCatalogLookupFlags flags,
						  E2kGlobalCatalogEntry **entry_p);

typedef void         (*E2kGlobalCatalogCallback) (E2kGlobalCatalog *gc,
						  E2kGlobalCatalogStatus status,
						  E2kGlobalCatalogEntry *entry,
						  gpointer user_data);

void             e2k_global_catalog_async_lookup (E2kGlobalCatalog *gc,
						  E2kOperation     *op,
						  E2kGlobalCatalogLookupType type,
						  const char *key,
						  E2kGlobalCatalogLookupFlags flags,
						  E2kGlobalCatalogCallback callback,
						  gpointer user_data);

double		lookup_passwd_max_age (E2kGlobalCatalog *gc, 
				      E2kOperation *op);


#define e2k_global_catalog_entry_free(gc, entry)

E2kGlobalCatalogStatus e2k_global_catalog_add_delegate    (E2kGlobalCatalog *gc,
							   E2kOperation     *op,
							   const char *self_dn,
							   const char *delegate_dn);
E2kGlobalCatalogStatus e2k_global_catalog_remove_delegate (E2kGlobalCatalog *gc,
							   E2kOperation     *op,
							   const char *self_dn,
							   const char *delegate_dn);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __E2K_GLOBAL_CATALOG_H__ */