~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to examples/nss/nss_winbind.h

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* 
 
2
   nss sample code for extended winbindd functionality
 
3
 
 
4
   Copyright (C) Andrew Tridgell (tridge@samba.org)   
 
5
   Copyright (C) Volker Lendecke (vl@samba.org)
 
6
 
 
7
   you are free to use this code in any way you see fit, including
 
8
   without restriction, using this code in your own products. You do
 
9
   not need to give any attribution.
 
10
*/
 
11
 
 
12
#define _GNU_SOURCE
 
13
 
 
14
#include <pwd.h>
 
15
#include <grp.h>
 
16
 
 
17
struct nss_state {
 
18
        void *dl_handle;
 
19
        char *nss_name;
 
20
        char pwnam_buf[512];
 
21
};
 
22
 
 
23
/*
 
24
  establish a link to the nss library
 
25
  Return 0 on success and -1 on error
 
26
*/
 
27
int nss_open(struct nss_state *nss, const char *nss_path);
 
28
 
 
29
/*
 
30
  close and cleanup a nss state
 
31
*/
 
32
void nss_close(struct nss_state *nss);
 
33
 
 
34
/*
 
35
  make a getpwnam call. 
 
36
  Return 0 on success and -1 on error
 
37
*/
 
38
int nss_getpwent(struct nss_state *nss, struct passwd *pwd);
 
39
 
 
40
/*
 
41
  make a setpwent call. 
 
42
  Return 0 on success and -1 on error
 
43
*/
 
44
int nss_setpwent(struct nss_state *nss);
 
45
 
 
46
/*
 
47
  make a endpwent call. 
 
48
  Return 0 on success and -1 on error
 
49
*/
 
50
int nss_endpwent(struct nss_state *nss);
 
51
 
 
52
/*
 
53
  convert a name to a SID
 
54
  caller frees
 
55
  Return 0 on success and -1 on error
 
56
*/
 
57
int nss_nametosid(struct nss_state *nss, const char *name, char **sid);
 
58
 
 
59
/*
 
60
  convert a SID to a name
 
61
  caller frees
 
62
  Return 0 on success and -1 on error
 
63
*/
 
64
int nss_sidtoname(struct nss_state *nss, const char *sid, char **name);
 
65
 
 
66
/*
 
67
  return a list of group SIDs for a user SID
 
68
  the returned list is NULL terminated
 
69
  Return 0 on success and -1 on error
 
70
*/
 
71
int nss_getusersids(struct nss_state *nss, const char *user_sid, char ***sids);
 
72
 
 
73
/*
 
74
  convert a sid to a uid
 
75
  Return 0 on success and -1 on error
 
76
*/
 
77
int nss_sidtouid(struct nss_state *nss, const char *sid, uid_t *uid);
 
78
 
 
79
/*
 
80
  convert a sid to a gid
 
81
  Return 0 on success and -1 on error
 
82
*/
 
83
int nss_sidtogid(struct nss_state *nss, const char *sid, gid_t *gid);
 
84
 
 
85
/*
 
86
  convert a uid to a sid
 
87
  caller frees
 
88
  Return 0 on success and -1 on error
 
89
*/
 
90
int nss_uidtosid(struct nss_state *nss, uid_t uid, char **sid);
 
91
 
 
92
/*
 
93
  convert a gid to a sid
 
94
  caller frees
 
95
  Return 0 on success and -1 on error
 
96
*/
 
97
int nss_gidtosid(struct nss_state *nss, gid_t gid, char **sid);