summaryrefslogtreecommitdiff
path: root/nslcd/attmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'nslcd/attmap.c')
-rw-r--r--nslcd/attmap.c102
1 files changed, 98 insertions, 4 deletions
diff --git a/nslcd/attmap.c b/nslcd/attmap.c
index 9e0b712..4029d43 100644
--- a/nslcd/attmap.c
+++ b/nslcd/attmap.c
@@ -20,11 +20,16 @@
02110-1301 USA
*/
+#include "config.h"
+#include <stdlib.h>
+#include <strings.h>
+#include "attmap.h"
-#ifdef NEW_DISABLED_FOR_NOW
+const char *attmap_objectClass = "objectClass";
+
/**
* Vendor-specific attributes and object classes.
@@ -59,7 +64,8 @@ const char *attmap_group_cn = "cn";
const char *attmap_group_userPassword = "userPassword";
const char *attmap_group_gidNumber = "gidNumber";
const char *attmap_group_memberUid = "memberUid";
-/* probably also support uniqueMember and memberOf attributes */
+const char *attmap_group_uniqueMember = "uniqueMember";
+const char *attmap_group_memberOf = "memberOf";
/*
* ( nisSchema.2.6 NAME 'ipHost' SUP top AUXILIARY
@@ -80,7 +86,7 @@ const char *attmap_host_ipHostNumber = "ipHostNumber";
* MAY ( nisNetgroupTriple $ memberNisNetgroup $ description ) )
*/
const char *attmap_netgroup_objectClass = "nisNetgroup";
-/*const char *attmap_netgroup_cn = "cn";*/
+const char *attmap_netgroup_cn = "cn";
const char *attmap_netgroup_nisNetgroupTriple = "nisNetgroupTriple";
const char *attmap_netgroup_memberNisNetgroup = "memberNisNetgroup";
@@ -171,4 +177,92 @@ const char *attmap_shadow_shadowInactive = "shadowInactive";
const char *attmap_shadow_shadowExpire = "shadowExpire";
const char *attmap_shadow_shadowFlag = "shadowFlag";
-#endif /* NEW_DISABLED_FOR_NOW */
+const char **attmap_get_var(const char *name)
+{
+ if (strncasecmp(name,"alias.",6)==0)
+ {
+ if (strcasecmp(name+6,"objectClass")==0) return &attmap_alias_objectClass;
+ if (strcasecmp(name+6,"cn")==0) return &attmap_alias_cn;
+ if (strcasecmp(name+6,"rfc822MailMember")==0) return &attmap_alias_rfc822MailMember;
+ }
+ else if (strncasecmp(name,"ether.",6)==0)
+ {
+ if (strcasecmp(name+6,"objectClass")==0) return &attmap_ether_objectClass;
+ if (strcasecmp(name+6,"cn")==0) return &attmap_ether_cn;
+ if (strcasecmp(name+6,"macAddress")==0) return &attmap_ether_macAddress;
+ }
+ else if (strncasecmp(name,"group.",6)==0)
+ {
+ if (strcasecmp(name+6,"objectClass")==0) return &attmap_group_objectClass;
+ if (strcasecmp(name+6,"cn")==0) return &attmap_group_cn;
+ if (strcasecmp(name+6,"userPassword")==0) return &attmap_group_userPassword;
+ if (strcasecmp(name+6,"gidNumber")==0) return &attmap_group_gidNumber;
+ if (strcasecmp(name+6,"memberUid")==0) return &attmap_group_memberUid;
+ if (strcasecmp(name+6,"uniqueMember")==0) return &attmap_group_uniqueMember;
+ if (strcasecmp(name+6,"memberOf")==0) return &attmap_group_memberOf;
+ }
+ else if (strncasecmp(name,"host.",5)==0)
+ {
+ if (strcasecmp(name+5,"objectClass")==0) return &attmap_host_objectClass;
+ if (strcasecmp(name+5,"cn")==0) return &attmap_host_cn;
+ if (strcasecmp(name+5,"ipHostNumber")==0) return &attmap_host_ipHostNumber;
+ }
+ else if (strncasecmp(name,"netgroup.",9)==0)
+ {
+ if (strcasecmp(name+9,"objectClass")==0) return &attmap_netgroup_objectClass;
+ if (strcasecmp(name+9,"cn")==0) return &attmap_netgroup_cn;
+ if (strcasecmp(name+9,"nisNetgroupTriple")==0) return &attmap_netgroup_nisNetgroupTriple;
+ if (strcasecmp(name+9,"memberNisNetgroup")==0) return &attmap_netgroup_memberNisNetgroup;
+ }
+ else if (strncasecmp(name,"network.",8)==0)
+ {
+ if (strcasecmp(name+8,"objectClass")==0) return &attmap_network_objectClass;
+ if (strcasecmp(name+8,"cn")==0) return &attmap_network_cn;
+ if (strcasecmp(name+8,"ipNetworkNumber")==0) return &attmap_network_ipNetworkNumber;
+ }
+ else if (strncasecmp(name,"passwd.",7)==0)
+ {
+ if (strcasecmp(name+7,"objectClass")==0) return &attmap_passwd_objectClass;
+ if (strcasecmp(name+7,"uid")==0) return &attmap_passwd_uid;
+ if (strcasecmp(name+7,"userPassword")==0) return &attmap_passwd_userPassword;
+ if (strcasecmp(name+7,"uidNumber")==0) return &attmap_passwd_uidNumber;
+ if (strcasecmp(name+7,"gidNumber")==0) return &attmap_passwd_gidNumber;
+ if (strcasecmp(name+7,"gecos")==0) return &attmap_passwd_gecos;
+ if (strcasecmp(name+7,"cn")==0) return &attmap_passwd_cn;
+ if (strcasecmp(name+7,"homeDirectory")==0) return &attmap_passwd_homeDirectory;
+ if (strcasecmp(name+7,"loginShell")==0) return &attmap_passwd_loginShell;
+ }
+ else if (strncasecmp(name,"protocol.",9)==0)
+ {
+ if (strcasecmp(name+9,"objectClass")==0) return &attmap_protocol_objectClass;
+ if (strcasecmp(name+9,"cn")==0) return &attmap_protocol_cn;
+ if (strcasecmp(name+9,"ipProtocolNumber")==0) return &attmap_protocol_ipProtocolNumber;
+ }
+ else if (strncasecmp(name,"rpc.",4)==0)
+ {
+ if (strcasecmp(name+9,"objectClass")==0) return &attmap_rpc_objectClass;
+ if (strcasecmp(name+9,"cn")==0) return &attmap_rpc_cn;
+ if (strcasecmp(name+9,"oncRpcNumber")==0) return &attmap_rpc_oncRpcNumber;
+ }
+ else if (strncasecmp(name,"service.",8)==0)
+ {
+ if (strcasecmp(name+8,"objectClass")==0) return &attmap_service_objectClass;
+ if (strcasecmp(name+8,"cn")==0) return &attmap_service_cn;
+ if (strcasecmp(name+8,"ipServicePort")==0) return &attmap_service_ipServicePort;
+ if (strcasecmp(name+8,"ipServiceProtocol")==0) return &attmap_service_ipServiceProtocol;
+ }
+ else if (strncasecmp(name,"shadow.",7)==0)
+ {
+ if (strcasecmp(name+7,"objectClass")==0) return &attmap_shadow_objectClass;
+ if (strcasecmp(name+7,"uid")==0) return &attmap_shadow_uid;
+ if (strcasecmp(name+7,"userPassword")==0) return &attmap_shadow_userPassword;
+ if (strcasecmp(name+7,"shadowLastChange")==0) return &attmap_shadow_shadowLastChange;
+ if (strcasecmp(name+7,"shadowMin")==0) return &attmap_shadow_shadowMin;
+ if (strcasecmp(name+7,"shadowMax")==0) return &attmap_shadow_shadowMax;
+ if (strcasecmp(name+7,"shadowWarning")==0) return &attmap_shadow_shadowWarning;
+ if (strcasecmp(name+7,"shadowInactive")==0) return &attmap_shadow_shadowInactive;
+ if (strcasecmp(name+7,"shadowExpire")==0) return &attmap_shadow_shadowExpire;
+ if (strcasecmp(name+7,"shadowFlag")==0) return &attmap_shadow_shadowFlag;
+ }
+ return NULL;
+}