~vcs-imports/samba/main

« back to all changes in this revision

Viewing changes to examples/nss/nss_winbind.h

  • Committer: jerry
  • Date: 2006-07-14 21:48:39 UTC
  • Revision ID: vcs-imports@canonical.com-20060714214839-586d8c489a8fcead
gutting trunk to move to svn:externals

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);