[Fedora-directory-commits] adminserver/admserv/schema/ldif 01nsroot.ldif.tmpl, 1.1, 1.2
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/adminserver/admserv/schema/ldif
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv25735
Modified Files:
01nsroot.ldif.tmpl
Log Message:
Removed an unnecessary entry.
Index: 01nsroot.ldif.tmpl
===================================================================
RCS file: /cvs/dirsec/adminserver/admserv/schema/ldif/01nsroot.ldif.tmpl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 01nsroot.ldif.tmpl 13 Jun 2007 17:48:35 -0000 1.1
+++ 01nsroot.ldif.tmpl 13 Jun 2007 20:03:06 -0000 1.2
@@ -42,14 +42,6 @@
uid: %as_uid%
userPassword: %as_passwd%
-dn: ou=localdomain, o=NetscapeRoot
-objectClass: top
-objectClass: organizationalunit
-objectClass: nsadmindomain
-ou: localdomain
-description: Standard branch for configuration information
-nsAdminDomainName: localdomain
-
dn: ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
16 years, 10 months
[Fedora-directory-commits] adminserver/admserv/schema/ldif 00nsroot_backend.ldif.tmpl, NONE, 1.1 01nsroot.ldif.tmpl, NONE, 1.1 02globalpreferences.ldif.tmpl, NONE, 1.1 10dsdata.ldif.tmpl, NONE, 1.1 11dstasks.ldif.tmpl, NONE, 1.1 20asdata.ldif.tmpl, NONE, 1.1 21astasks.ldif.tmpl, NONE, 1.1 22ascommands.ldif.tmpl, NONE, 1.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/adminserver/admserv/schema/ldif
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17988/admserv/schema/ldif
Added Files:
00nsroot_backend.ldif.tmpl 01nsroot.ldif.tmpl
02globalpreferences.ldif.tmpl 10dsdata.ldif.tmpl
11dstasks.ldif.tmpl 20asdata.ldif.tmpl 21astasks.ldif.tmpl
22ascommands.ldif.tmpl
Log Message:
Resolves: #237356
Summary: Move DS Admin Code into Admin Server (Comment #58)
Description: adding the server registeration script and its data files
--- NEW FILE 00nsroot_backend.ldif.tmpl ---
dn: cn="o=NetscapeRoot",cn=mapping tree,cn=config
objectClass: top
objectClass: extensibleObject
objectClass: nsMappingTree
cn: "o=NetscapeRoot"
nsslapd-state: backend
nsslapd-backend: NetscapeRoot
--- NEW FILE 01nsroot.ldif.tmpl ---
dn: o=NetscapeRoot
objectClass: top
objectClass: organization
o: NetscapeRoot
aci: (targetattr="*")(version 3.0; acl "Enable Configuration Administrator Group modification"; allow (all) groupdn="ldap:///cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot";)
aci: (targetattr="*")(targetfilter=(o=NetscapeRoot))(version 3.0; acl "Default anonymous access"; allow (read, search) userdn="ldap:///anyone";)
aci: (targetattr="*")(version 3.0; acl "Enable Group Expansion"; allow (read, search, compare) groupdnattr="uniquemember";)
dn: ou=TopologyManagement, o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: TopologyManagement
description: Branch for Configuration Administration users and groups
aci: (targetattr!="userPassword")(version 3.0; acl "Enable anonymous access"; allow (read, search, compare)userdn="ldap:///anyone";)
dn: ou=Groups, ou=TopologyManagement, o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Groups
description: Standard Branch for group entries
dn: ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Administrators
description: Standard branch for Configuration Administrator (uid) entries
dn: cn=Configuration Administrators, ou=Groups, ou=TopologyManagement, o=NetscapeRoot
objectClass: top
objectClass: groupofuniquenames
cn: Configuration Administrators
uniqueMember: uid=%as_uid%,ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
dn: uid=%as_uid%, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
objectClass: top
objectClass: person
objectClass: organizationalperson
objectClass: inetorgperson
cn: Configuration Administrator
sn: Administrator
givenName: Configuration
uid: %as_uid%
userPassword: %as_passwd%
dn: ou=localdomain, o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
objectClass: nsadmindomain
ou: localdomain
description: Standard branch for configuration information
nsAdminDomainName: localdomain
dn: ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
objectClass: nsadmindomain
ou: %domain%
description: Standard branch for configuration information
nsAdminDomainName: %domain%
dn: ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Global Preferences
dn: ou=Host Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
ou: Host Preferences
dn: ou=UserPreferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
ou: UserPreferences
dn: cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsHost
objectClass: groupOfUniqueNames
cn: %fqdn%
serverHostName: %fqdn%
nsOsVersion: %uname_a%
nsHardwarePlatform: %uname_m%
uniqueMember: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
dn: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: nsAdminGroup
objectClass: groupOfUniqueNames
objectClass: nsDirectoryInfo
objectClass: top
nsAdminGroupName: Server Group
nsConfigRoot: %configroot%
nsDirectoryInfoRef: cn=UserDirectory, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
nsAdminSIEDN: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
cn: Server Group
uniqueMember: cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
uniqueMember: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
--- NEW FILE 02globalpreferences.ldif.tmpl ---
dn: ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: organizationalUnit
objectClass: extensibleObject
ou: admin
nsmerge: ADD_IF_EMPTY
dn: ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: organizationalunit
objectClass: extensibleObject
ou: %as_version%
nsmerge: ADD_IF_EMPTY
dn: cn=ResourceEditorExtension, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: extensibleObject
cn: ResourceEditorExtension
nsmerge: ADD_IF_EMPTY
dn: cn=nsroledefinition, cn=ResourceEditorExtension, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
cn: nsroledefinition
objectClass: top
objectClass: extensibleObject
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleInfo@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleMembers@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.roledit.ResEditorRoleAccountPage@%ds_console_jar%
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=cossuperdefinition, cn=ResourceEditorExtension, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
cn: cossuperdefinition
objectClass: top
objectClass: extensibleObject
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosInfo@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosAttributes@%ds_console_jar%
nsClassname: com.netscape.admin.dirserv.cosedit.ResEditorCosTemplate@%ds_console_jar%
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=UserDirectory, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsDirectoryInfo
cn: UserDirectory
nsDirectoryURL: ldap://%fqdn%:%ds_port%/%ds_suffix%
nsDirectoryFailoverList:
dn: cn=Common, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsGlobalParameters
objectClass: extensibleObject
cn: common
nsUniqueAttribute: uid
nsUserIDFormat: firstletter_lastname
nsUserRDNComponent: uid
nsGroupRDNComponent: cn
nsmerge: {nsuniqueattribute}ADD_IF_EMPTY
nsmerge: {nsuseridformat}ADD_IF_EMPTY
nsmerge: {nsuserrdncomponent}ADD_IF_EMPTY
nsmerge: {nsgrouprdncomponent}ADD_IF_EMPTY
dn: cn=Client, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsAdminGlobalParameters
objectClass: extensibleObject
cn: Client
nsAdminEndUserHTMLIndex: [--Category:general,General][--Option:edit.cgi?userpinfo,Personal Information][--Option:edit.cgi?userpasswd,Password]
nsNickName: admin,,%brand% Administration Server
nsNickName: slapd,slapd,%brand% Directory Server
nsNickName: cert,cert,%brand% Certificate Server
nsmerge: {nsadminenduserhtmlindex}MULTI_MERGE
nsmerge: {nsnickname}MULTI_MERGE
dn: cn=PublicViews, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsAdminConsoleUser
cn: PublicViews
dn: cn=CustomView, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
cn: CustomView
dn: cn=inetorgPerson, cn=ResourceEditorExtension, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
cn: inetorgPerson
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
objectClass: top
objectClass: extensibleObject
objectClass: nsAdminObject
nsClassname: com.netscape.management.client.ug.ResEditorUserPage
nsClassname: com.netscape.management.client.ug.ResEditorAccountPage
nsClassname: com.netscape.management.client.ug.LanguagePage
nsClassname: com.netscape.management.client.ug.ResEditorNTUser
nsClassname: com.netscape.management.client.ug.ResEditorPosixUser
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=organizationalPerson, cn=ResourceEditorExtension, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
cn: organizationalPerson
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
objectClass: top
objectClass: extensibleObject
objectClass: nsAdminObject
nsClassname: com.netscape.management.client.ug.ResEditorUserPage
nsClassname: com.netscape.management.client.ug.ResEditorAccountPage
nsClassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=groupofuniquenames, cn=ResourceEditorExtension, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
cn: groupofuniquenames
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
objectClass: top
objectClass: extensibleObject
objectClass: nsAdminObject
nsClassname: com.netscape.management.client.ug.ResEditorGroupInfo
nsClassname: com.netscape.management.client.ug.ResEditorGroupMembers
nsClassname: com.netscape.management.client.ug.ResEditorAccountPage
nsClassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=organizationalunit, cn=ResourceEditorExtension, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
cn: organizationalunit
objectClass: nsResourceRef
objectClass: nsAdminResourceEditorExtension
objectClass: top
objectClass: extensibleObject
objectClass: nsAdminObject
nsClassname: com.netscape.management.client.ug.OUPage
nsClassname: com.netscape.management.client.ug.LanguagePage
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=defaultObjectClassesContainer, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
cn: DefaultObjectClassesContainer
dn: cn=user, cn=defaultObjectClassesContainer, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsdefaultObjectClasses
cn: user
nsDefaultObjectClass: top
nsDefaultObjectClass: person
nsDefaultObjectClass: organizationalPerson
nsDefaultObjectClass: inetorgperson
dn: cn=group, cn=defaultObjectClassesContainer, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsdefaultObjectClasses
cn: group
nsDefaultObjectClass: top
nsDefaultObjectClass: groupofuniquenames
dn: cn=ou, cn=defaultObjectClassesContainer, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: nsdefaultObjectClasses
cn: ou
nsDefaultObjectClass: top
nsDefaultObjectClass: organizationalunit
dn: cn=topologyplugin, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
objectClass: extensibleObject
cn: topologyplugin
nsmerge: ADD_IF_EMPTY
dn: cn=defaultplugin, cn=topologyplugin, ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nstopologyplugin
objectClass: extensibleObject
objectClass: nsAdminObject
cn: defaultplugin
nsClassname: com.netscape.management.client.topology.DefaultTopologyPlugin
nsmerge: {nsclassname}MULTI_MERGE
dn: cn=UI,ou=%as_version%, ou=Admin, ou=Global Preferences, ou=%domain%, o=NetscapeRoot
cn: UI
objectClass: top
objectClass: nsAdminConsoleUser
--- NEW FILE 10dsdata.ldif.tmpl ---
dn: cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: nsApplication
objectClass: groupOfUniqueNames
objectClass: top
cn: %brand% Directory Server
nsProductName: %brand% Directory Server
nsProductVersion: %ds_version%
nsNickName: slapd
nsBuildNumber: %ds_buildnum%
nsVendor: %vendor%
nsInstalledLocation: %ds_installedlocation%
nsExpirationDate: 0
nsBuildSecurity: domestic
uniqueMember: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
nsServerMigrationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
nsServerCreationClassname: com.netscape.admin.dirserv.task.MigrateCreate@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
dn: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: netscapeServer
objectClass: nsDirectoryServer
objectClass: nsResourceRef
objectClass: nsConfig
objectClass: groupOfUniqueNames
objectClass: top
nsServerSecurity: off
nsServerID: slapd-%dsid%
nsBindDN: %rootdn%
nsBaseDN: %ds_suffix%
serverRoot: %ds_serverroot%
nsServerPort: %ds_port%
nsSecureServerPort: %ds_secure_port%
serverProductName: Directory Server (%hostname%)
serverVersionNumber: %ds_version%
nsSuiteSpotUser: %ds_user%
serverHostName: %fqdn%
cn: slapd-%dsid%
uniqueMember: cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
uniqueMember: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
userPassword: %ds_passwd%
dn: cn=configuration,cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: nsResourceRef
objectClass: nsAdminObject
objectClass: nsDirectoryInfo
objectClass: top
cn: configuration
nsClassname: com.netscape.admin.dirserv.DSAdmin@%ds_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
nsJarfilename: @ds_console_jar@
nsDirectoryInfoRef: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
--- NEW FILE 11dstasks.ldif.tmpl ---
dn: cn=Tasks, %ds_sie%
objectClass: top
objectClass: nsResourceRef
cn: Tasks
dn: cn=Operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Operation Tasks Group
cn: Operation
dn: cn=task summary, cn=Operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nsConfig
description: start stop restart Backup Restore KeyCert Authenticate CompleteImport CompleteExport
cn: task summary
dn: cn=start, cn=Operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Start@%ds_console_jar%@%as_sie%
nsExecRef: ds_start
cn: start
dn: cn=stop, cn=Operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Stop@%ds_console_jar%@%as_sie%
nsExecRef: ds_shutdown
cn: stop
dn: cn=restart, cn=Operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Restart@%ds_console_jar%@%as_sie%
nsExecRef: ds_restart
cn: restart
dn: cn=Backup, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Backup@%ds_console_jar%@%as_sie%
nsExecRef: ds_db2bak
cn: Backup
dn: cn=Restore, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Restore@%ds_console_jar%@%as_sie%
nsExecRef: ds_bak2db
cn: Restore
dn: cn=KeyCert, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.KeyCert@%ds_console_jar%@%as_sie%
cn: KeyCert
dn: cn=Authenticate, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.Authenticate@%ds_console_jar%@%as_sie%
cn: Authenticate
dn: cn=CompleteImport, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.CompleteImport@%ds_console_jar%@%as_sie%
cn: CompleteImport
dn: cn=CompleteExport, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsClassname: com.netscape.admin.dirserv.task.CompleteExport@%ds_console_jar%@%as_sie%
cn: CompleteExport
dn: cn=Export, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_db2ldif
cn: Export
dn: cn=Import, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_ldif2db
cn: Import
dn: cn=ViewLog, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: perl?ds_viewlog.pl
cn: ViewLog
dn: cn=ListBackups, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_listdb
cn: ListBackups
dn: cn=Remove, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_remove
cn: Remove
dn: cn=CreateVLVIndex, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_vlvindex
cn: CreateVLVIndex
dn: cn=AddIndex, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_addindex
cn: AddIndex
dn: cn=SNMPCtrl, cn=operation, cn=Tasks, %ds_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_snmpctrl
cn: SNMPCtrl
dn: cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsResourceRef
cn: Tasks
dn: cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Operation Tasks Group
cn: Operation
dn: cn=Migrate, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: perl?migrateInstance
cn: Migrate
dn: cn=Create, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ds_newinst
cn: Create
dn: cn=GetConfigInfo, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: perl?getConfigInfo
cn: GetConfigInfo
dn: cn=MigrateLocalDB, cn=Operation, cn=Tasks, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: perl?migrateLocalDB
cn: MigrateLocalDB
--- NEW FILE 20asdata.ldif.tmpl ---
dn: cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: nsApplication
objectClass: groupOfUniqueNames
cn: %brand% Administration Server
nsVendor: %vendor%
nsProductName: %brand% Administration Server
nsNickName: admin
nsProductVersion: %as_version%
nsBuildNumber: %as_buildnum%
nsInstalledLocation: %as_installedlocation%
nsBuildSecurity: domestic
nsServerMigrationClassname: com.netscape.management.admserv.AdminServerProduct
@%as_console_jar%
uniqueMember: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
dn: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: top
objectClass: netscapeServer
objectClass: nsAdminServer
objectClass: nsResourceRef
objectClass: groupOfUniqueNames
cn: admin-serv-%asid%
nsServerID: admin-serv
serverRoot: %as_serverroot%
serverProductName: Administration Server
serverHostName: %fqdn%
uniqueMember: cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
userPassword: %as_passwd%
dn: cn=configuration, cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
objectClass: nsConfig
objectClass: nsAdminConfig
objectClass: nsAdminObject
objectClass: nsDirectoryInfo
objectClass: top
cn: Configuration
nsServerPort: %as_port%
nsSuiteSpotUser: %as_user%
nsServerAddress:
nsAdminEnableEnduser: on
nsAdminEnableDSGW: on
nsDirectoryInfoRef: cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
nsAdminUsers: %admpw%
nsErrorLog: %as_error%
nsPidLog: %as_pid%
nsAccessLog: %as_access
nsAdminCacheLifetime: 600
nsAdminAccessHosts: *.%domain%
nsAdminAccessAddresses: *
nsAdminOneACLDir: adminacl
nsDefaultAcceptLanguage: en
nsClassname: com.netscape.management.admserv.AdminServer@%as_console_jar%@cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot
--- NEW FILE 21astasks.ldif.tmpl ---
dn: cn=Tasks, %as_sie%
objectClass: top
objectClass: nsResourceRef
cn: Tasks
dn: cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Operation Tasks Group
cn: Operation
dn: cn=Stop, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/stopadm.html
nsExecRef: stopsrv
nsClassname: com.netscape.management.admserv.task.Stop@%as_console_jar%@%as_sie%
cn: Stop
dn: cn=Restart, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/restartadm.html
nsExecRef: restartsrv
nsClassname: com.netscape.management.admserv.task.Restart@%as_console_jar%@%as_sie%
cn: Restart
dn: cn=Authenticate, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
nsHelpRef: %as_help_path%/userauth.html
nsExecRef: userauth
cn: Authenticate
dn: cn=ListOldServers, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: listOldSrvs
cn: ListOldServers
dn: cn=StartConfigDS, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
nsExecRef: start_config_ds
cn: StartConfigDS
dn: cn=MigrateConfig, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: migrateConfig
cn: MigrateConfig
dn: cn=MergeConfig, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: mergeConfig
cn: MergeConfig
dn: cn=StatusPing, cn=Operation, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: statusping
nsLogSuppress: true
cn: StatusPing
dn: cn=Configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstaskgroup
nsTaskLabel: Configuration Tasks Group
cn: Configuration
dn: cn=ServerSetup, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: config
nsClassname: com.netscape.management.admserv.task.ServerSetup@%as_console_jar%@%as_sie%
cn: ServerSetup
dn: cn=DirectorySetup, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: dsconfig
cn: DirectorySetup
dn: cn=UGDirectorySetup, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: ugdsconfig
cn: UGDirectorySetup
dn: cn=AccessSetup, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: admpw
cn: AccessSetup
dn: cn=Logging, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/logging.html
nsExecRef: config
nsClassname: com.netscape.management.admserv.task.Logging@%as_console_jar%@%as_sie%
cn: Logging
dn: cn=SecurityOp, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsExecRef: security
cn: SecurityOp
dn: cn=CertSetup, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/certrequest.html
nsClassname: com.netscape.management.admserv.task.CertSetup@%as_console_jar%@%as_sie%
cn: CertSetup
dn: cn=SSLActivate, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/ssl_activate.html
nsExecRef: sec-activate
cn: SSLActivate
dn: cn=ReadLog, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/logging.html
nsExecRef: ReadLog
cn: ReadLog
dn: cn=HTMLAdmin, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/htmladmin.html
nsExecRef: htmladmin
cn: HTMLAdmin
dn: cn=StatPingServ, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/statpingserv.html
nsExecRef: statpingserv
cn: StatPingServ
dn: cn=ViewData, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/viewdata.html
nsExecRef: viewdata
cn: ViewData
dn: cn=ViewLog, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/viewlog.html
nsExecRef: viewlog
cn: ViewLog
dn: cn=MonReplication, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/monreplication.html
nsExecRef: monreplication
cn: MonReplication
dn: cn=repl-monitor-cgi.pl, cn=configuration, cn=Tasks, %as_sie%
objectClass: top
objectClass: nstask
objectClass: nsAdminObject
nsHelpRef: %as_help_path%/monreplication.html
nsExecRef: perl?repl-monitor-cgi.pl
cn: repl-monitor-cgi.pl
--- NEW FILE 22ascommands.ldif.tmpl ---
dn: cn=Commands, %as_sie%
objectClass: top
objectClass: nsResourceRef
cn: Commands
dn: cn=sync-task-sie-data, cn=Commands, %as_sie%
objectClass: top
objectClass: nstask
nsHelpRef: %as_help_path%/sync-task-sie-data.html
nsExecRef: runtime
cn: sync-task-sie-data
dn: cn=change-sie-password, cn=Commands, %as_sie%
objectClass: top
objectClass: nstask
nsExecRef: runtime
cn: change-sie-password
16 years, 10 months
[Fedora-directory-commits] adminserver/admserv/newinst/src register_param.map.in, NONE, 1.1 register_server.pl.in, NONE, 1.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/adminserver/admserv/newinst/src
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17988/admserv/newinst/src
Added Files:
register_param.map.in register_server.pl.in
Log Message:
Resolves: #237356
Summary: Move DS Admin Code into Admin Server (Comment #58)
Description: adding the server registeration script and its data files
--- NEW FILE register_param.map.in ---
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
# register_param.map:
# This file is used by the register_server.pl script to register the server
# info to the Configuration Directory Server. The server info is stored in
# the (template) ldif files located in @ldifdir@. In case a server entry has
# %...% format parameters, this map table is used to resolve it and replace
# the parameter with the value defined in this file.
#
# [Parameter resolution rules]
# * If the right-hand value is in ` (backquote), the value is eval'ed by perl.
# The output should be stored in $returnvalue to pass to the internal hash.
# * If the right-hand value is in " (doublequote), the value is passed as is.
# * If the right-hand value is not in any quote, the value should be found
# in either of the setup inf file (static) or the install inf file (dynamic).
# * Variables surrounded by @ (e.g., @configdir@) are replaced with the
# system path at the compile time.
# * The right-hand value can contain variables surrounded by % (e.g., %asid%)
# which refers the right-hand value (key) of this map file.
#
fqdn = `use Net::Domain qw(hostfqdn); $returnvalue = hostfqdn();`
domain = `use Net::Domain qw(hostdomain); $returnvalue = hostdomain();`
brand = Brand
normbrand = NormBrand
hostname = `use Net::Domain qw(hostname); $returnvalue = hostname();`
vendor = Vendor
uname_a = `open(UNAMEA, "uname -a |"); $returnvalue = <UNAMEA>; chomp $returnvalue; close(UNAMEA);`
uname_m = `open(UNAMEM, "uname -m |"); $returnvalue = <UNAMEM>; chomp $returnvalue; close(UNAMEM);`
configroot = "CONFIG ROOT -- replace me"
as_uid = ServerAdminID
as_passwd = ServerAdminPwd
asid = `use Net::Domain qw(hostname); $returnvalue = hostname();`
as_port = Port
admpw = "@configdir@/admpw"
as_error = "@logdir@/errors"
as_access = "@logdir@/access"
as_pid = "@pidfile@"
as_console_jar = "%normbrand%-admserv-%as_version%.jar"
as_help_path = "@helpdir@"
as_user = SysUser
as_version = Version
as_buildnum = BuildNumber
as_installedlocation = "AS INSTALLED LOCATION -- replace me"
as_serverroot = "AS SERVER ROOT-- replace me"
as_sie = "cn=admin-serv-%asid%, cn=%brand% Administration Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot"
ds_version = Version
dsid = ServerIdentifier
ds_user = SuiteSpotUserID
ds_port = ServerPort
ds_secure_port ="636"
rootdn = RootDN
ds_suffix = Suffix
ds_buildnum = BuildNumber
ds_passwd = RootDNPwd
ds_console_jar ="%normbrand%-ds-%ds_version%.jar"
ds_installedlocation = "DS INSTALLED LOCATION -- replace me"
ds_serverroot = "DS SERVER ROOT-- replace me"
ds_sie = "cn=slapd-%dsid%, cn=%brand% Directory Server, cn=Server Group, cn=%fqdn%, ou=%domain%, o=NetscapeRoot"
--- NEW FILE register_server.pl.in ---
# BEGIN COPYRIGHT BLOCK
# This Program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; version 2 of the License.
#
# This Program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA 02111-1307 USA.
#
# In addition, as a special exception, Red Hat, Inc. gives You the additional
# right to link the code of this Program with code not covered under the GNU
# General Public License ("Non-GPL Code") and to distribute linked combinations
# including the two, subject to the limitations in this paragraph. Non-GPL Code
# permitted under this exception must only link to the code of this Program
# through those well defined interfaces identified in the file named EXCEPTION
# found in the source code files (the "Approved Interfaces"). The files of
# Non-GPL Code may instantiate templates or use macros or inline functions from
# the Approved Interfaces without causing the resulting work to be covered by
# the GNU General Public License. Only Red Hat, Inc. may make changes or
# additions to the list of Approved Interfaces. You must obey the GNU General
# Public License in all respects for all of the Program code and other code used
# in conjunction with the Program except the Non-GPL Code covered by this
# exception. If you modify this file, you may extend this exception to your
# version of the file, but you are not obligated to do so. If you do not wish to
# provide this exception without modification, you must delete this exception
# statement from your version and license this file solely under the GPL without
# exception.
#
#
# Copyright (C) 2007 Red Hat, Inc.
# All rights reserved.
# END COPYRIGHT BLOCK
#
# Usage: register_server.pl [ -h <host> ] [ -p <port> ] [ -D <rootdn> ] \
# -w <rootdnpw> [ -d <default_infdir> ] \
# -i <inffile(s)> -m <mapfile> <ldiffile> ...
#
# Description: Store server info stored in the ldiffiles to the Configuration
# Directory Server replacing the macros with the defined values
# in the map file.
#
# -h <host>: configuration server host (localhost, by default)
# -p <port>: configuration server port (389)
# -D <rootdn>: configuration server's rootdn ("cn=Directory Manager")
# -w <rootdnpw>: configuration server's rootdn password
# -d <default_infdir>: the directory where static .inf files are located
# ("/usr/share/fedora-ds/inf")
# -i <inffile(s)>: dynamic .inf file(s)
# -m <mapfile>: map file name
# <ldiffile> ...: ldif file(s) or template ldif file(s) to be stored in
# the Configuration Directory Server
use Getopt::Std;
use Net::Domain qw(hostname);
# PERLDAP modules
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Entry;
# Setup Inf module
use Inf;
# process map table
# [map table sample]
# fqdn = FullMachineName
# hostname = `use Sys::Hostname; $returnvalue = hostname();`
# ds_console_jar ="%normbrand%-ds-%ds_version%.jar"
#
# * If the right-hand value is in ` (backquote), the value is eval'ed by perl.
# The output should be stored in $returnvalue to pass to the internal hash.
# * If the right-hand value is in " (doublequote), the value is passed as is.
# * If the right-hand value is not in any quote, the value should be found
# in either of the setup inf file (static) or the install inf file (dynamic).
# * Variables surrounded by @ (e.g., @admin_confdir@) are replaced with the
# system path at the compile time.
# * The right-hand value can contain variables surrounded by % (e.g., %asid%)
# which refers the right-hand value (key) of this map file.
sub process_maptbl
{
($mapper, @infdata) = @_;
foreach $section (keys %{$mapper})
{
my $thissection = \%{%{$mapper}->{$section}};
foreach $key (keys %{$thissection})
{
my $value = $thissection->{$key};
if ($value =~ /^\"/)
{
$value =~ tr/\"//d;
$thissection->{$key} = $value;
}
elsif ($value =~ /^\`/)
{
$value =~ tr/\`//d;
eval $value;
$thissection->{$key} = $returnvalue;
}
else
{
my $infsection;
foreach my $thisinf (@infdata)
{
foreach my $section0 (keys %{$thisinf})
{
$infsection = \%{%{$thisinf}->{$section0}};
if ("" ne $infsection->{$value})
{
$thissection->{$key} = $infsection->{$value};
goto nextkey;
}
}
}
if ("" eq $infsection->{$value})
{
print "ERROR: $value not found in the .inf files\n";
return NULL;
}
}
nextkey:
}
}
return $mapper;
}
# delete the subtree starting from the passed entry
sub delete_all
{
my ($conn, $bentry) = @_;
my $sentry = $conn->search($bentry->{dn},
"subtree", "(objectclass=*)", 0, ("dn"));
while ($sentry) {
push @mystack, ($sentry);
$sentry = $conn->nextEntry();
}
# reverse order
my $myentry = pop @mystack;
while ($myentry) {
$conn->delete($myentry->{dn});
$rc = $conn->getErrorCode();
if ( $rc ne 0 ) {
$conn->printError();
print "ERROR: unable to delete entry, error code: $rc\n";
return 1;
}
$myentry = pop @mystack;
}
return 0;
}
@ignorelist = (
"modifyTimestamp",
"createTimestamp",
"installationTimestamp",
"creatorsName",
"modifiersName",
"numSubordinates"
);
@speciallist = (
"uniqueMember"
);
sub is_in_array
{
my ($val, $array) = @_;
foreach my $elem ($array)
{
if ( lc($val) eq lc($elem) )
{
return 1;
}
}
return 0;
}
# compare 2 entries
# return 0 if they match 100% (exception: @ignorelist).
# return 1 if they match except @speciallist.
# return -1 if they do not match.
sub comp_entries
{
my ($e0, $e1) = @_;
$rc = 0;
foreach $akey ( keys %{$e0} )
{
next if ( 1 == is_in_array($akey, @ignorelist) );
$aval0 = $e0->{$akey};
$aval1 = $e1->{$akey};
my $amin;
my $amax;
if ( $#aval0 != $#aval1 )
{
if ( 1 == is_in_array($akey, @speciallist) )
{
$rc = 1;
if ( $#aval0 < $#aval1 )
{
$amin = $#aval0;
$amax = $#aval1;
}
else
{
$amin = $#aval1;
$amax = $#aval0;
}
}
else
{
$rc = -1;
return $rc;
}
}
@sval0 = sort { $a cmp $b } @{$aval0};
@sval1 = sort { $a cmp $b } @{$aval1};
for ( my $i = 0; $i <= $amin; $i++ )
{
my $isspecial = -1;
if ( $sval0[$i] ne $sval1[$i] )
{
if ( 0 > $isspecial )
{
$isspecial = is_in_array($akey, @speciallist);
}
if ( $isspecial )
{
$rc = 1;
}
else
{
$rc = -1;
return $rc;
}
}
}
}
return $rc;
}
# if the entry does not exist on the server, add the entry.
# otherwise, do nothing
sub check_and_add_entry
{
my ($conn, $aentry) = @_;
my $sentry = $conn->search($aentry->{dn}, "base", "(objectclass=*)");
do
{
my $needtoadd = 1;
my $needtomod = 0;
my $rval = -1;
if ( NULL != $sentry && !$confds_fresh )
{
$rval = comp_entries( $sentry, $aentry );
}
if ( 0 == $rval && !$confds_fresh )
{
# the identical entry exists on the configuration DS.
# no need to add the entry.
$needtoadd = 0;
goto out;
}
elsif ( 1 == $rval && !$confds_fresh )
{
$needtoadd = 0;
$needtomod = 1;
}
elsif ( NULL != $sentry && "" ne $sentry->{dn} )
{
# $confds_fresh || $rval == -1
# an entry having the same DN exists, but the attributes do not
# match. remove the entry and the subtree underneath.
if ( $confds_verbose )
{
print "Deleting an entry dn: $sentry->{dn} ...\n";
}
$rval = delete_all($conn, $sentry);
if ( 0 != $rval )
{
return 1;
}
}
if ( 1 == $needtoadd )
{
$conn->add($aentry);
my $rc = $conn->getErrorCode();
if ( $rc != 0 )
{
print "ERROR: adding an entry $aentry->{dn} failed, error code: $rc\n";
print "[entry]\n";
$aentry->printLDIF();
$conn->close();
return 1;
}
# if ( $confds_verbose )
# {
# print "Entry $aentry->{dn} is added\n";
# }
}
elsif ( 1 == $needtomod ) # $sentry exists
{
foreach $attr ( @speciallist )
{
foreach $nval ( @{$aentry->{$attr}} )
{
$sentry->addValue( $attr, $nval );
}
}
$conn->update($sentry);
my $rc = $conn->getErrorCode();
if ( $rc != 0 )
{
print "ERROR: updating an entry $sentry->{dn} failed, error code: $rc\n";
print "[entry]\n";
$aentry->printLDIF();
$conn->close();
return 1;
}
}
if ( NULL != $sentry )
{
$sentry = $conn->nextEntry(); # supposed to have no more entries
}
} until ( NULL == $sentry );
out:
return 0;
}
# register server info from the template ldif files
sub register_serverinfo
{
my ($conn, $mapper, @ldiffiles) = @_;
my $thissection = \%{%{$mapper}->{""}};
foreach my $ldiffile (@ldiffiles)
{
open(MYLDIF, "< $ldiffile") or die "Can't open $ldiffile : $!";
if ( $confds_verbose )
{
print "Processing $ldiffile ...\n";
}
my $entry = NULL;
while ( my $l = <MYLDIF> )
{
chop $l;
if ( "$l" eq "" )
{
next if ( NULL == $entry );
check_and_add_entry($conn, $entry);
$entry->DESTROY();
$entry = NULL;
}
elsif ( "$l" =~ /^dn:/ )
{
$entry = new Mozilla::LDAP::Entry();
my ($h, $dn) = split(/: /, $l, 2);
# Need to repeat to handle nested subst
my $origdn = $dn;
while ( $dn =~ /%([A-Za-z_]+)%/ )
{
$dn =~ s{%([A-Za-z_]+)%}{$thissection->{$1} || "SERVER_INFO_NOTFOUND"}ge;
}
if ( $dn =~ /SERVER_INFO_NOTFOUND/ )
{
print "ERROR: \"$origdn\" mapped to \"$dn\".\n";
print "Make sure that %value% replaced by SERVER_INFO_NOTFOUND exists in $mapfile.\n";
return 1;
}
$entry->setDN($dn);
}
else
{
my ($key, $value) = split(/: /, $l, 2);
# Need to repeat to handle nested subst
my $origvalue = $value;
while ( $value =~ /%([A-Za-z_]+)%/ )
{
$value =~ s{%([A-Za-z_]+)%}{$thissection->{$1} || "SERVER_INFO_NOTFOUND"}ge;
}
if ( $value =~ /SERVER_INFO_NOTFOUND/ )
{
print "ERROR: \"$origvalue\" mapped to \"$value\"\n";
print "Make sure that %value% replaced by SERVER_INFO_NOTFOUND exists in $mapfile.\n";
return 1;
}
$entry->addValue( $key, "$value" )
}
}
close(MYLDIF);
if ( NULL != $entry )
{
check_and_add_entry($conn, $entry);
$entry->DESTROY();
$entry = NULL;
}
}
return 0;
}
$USAGE =
"$0 [ -Fv ] [ -h <host> ] [ -p <port> ] [ -D <rootdn> ] \
-w <rootdnpw> [ -d <default_infdir> ] \
-i <inffile(s)> ... -m <mapfile> <ldiffile> ...
Description: Store server info stored in the ldiffiles to the Configuration
Directory Server replacing the macros with the defined values
in the map file.
-H: help (print this message)
-v: verbose
-F: Fresh registration; i.e., removing the existing server info.
-h <host>: configuration server host (localhost, by default)
-p <port>: configuration server port (389)
-D <rootdn>: configuration server's rootdn (\"cn=Directory Manager\")
-w <rootdnpw>: configuration server's rootdn password
-d <default_infdir>: the directory where static .inf files are located
(\"/usr/share/@PACKAGE_BASE_NAME@/inf\")
-i <inffile(s)>: dynamic .inf file(s)
-m <mapfile>: map file name
<ldiffile> ...: ldif files or template ldif files to be stored in the
Configuration Directory Server";
if ($#ARGV < 0 || !getopts('HFvh:p:D:w:d:m:i:') || $opt_H)
{
print "Usage: $USAGE\n";
exit 1;
}
$confds_verbose = $opt_v;
$confds_fresh = $opt_F;
$confds_host = $opt_h;
if ( "" eq $confds_host )
{
$confds_host = hostname();
}
$confds_port = $opt_p;
if ( "" eq $confds_port )
{
$confds_port = 389;
}
$confds_rootdn = $opt_D;
if ( "" eq $confds_rootdn )
{
$confds_rootdn = "cn=Directory Manager";
}
$confds_rootdnpw = $opt_w;
if ( "" eq $confds_rootdnpw )
{
print "ERROR: No root dn password\n";
print "usage: $USAGE\n";
exit 1;
}
my $infdir = $opt_d;
if ( "" eq $infdir )
{
$infdir = "/usr/share/@PACKAGE_BASE_NAME@/inf";
}
my @inffiles = ();
if ( "" eq $opt_i )
{
print "ERROR: No dynamic .inf files\n";
print "usage: $USAGE\n";
exit 1;
}
else
{
@inffiles = split(/[ ]/, $opt_i);
}
my @ldiffiles = @ARGV;
if ( 0 > $#ldiffiles )
{
print "ERROR: No root ldif files\n";
print "usage: $USAGE\n";
exit 1;
}
$mapfile = $opt_m;
if ( "" eq $mapfile )
{
print "ERROR: No mapfile\n";
print "usage: $USAGE\n";
exit 1;
}
if ( ! -r $mapfile )
{
print "ERROR: Cannot read $mapfile\n";
print "usage: $USAGE\n";
exit 1;
}
# reading info files
@infdata = ();
opendir(DIR, $infdir) or die "Cannot open install inf dir $infdir: $!";
while (defined($file = readdir(DIR)))
{
next if ( !("$file" =~ /\.inf$/) );
my $inffile = $infdir."/".$file;
my $infdatum = new Inf($inffile);
push(@infdata, ($infdatum));
}
closedir(DIR);
# open the ldap connection
$conn = new Mozilla::LDAP::Conn( $confds_host, $confds_port,
$confds_rootdn, $confds_rootdnpw );
if ( NULL == $conn )
{
print "ERROR: Cannot connect to the server\n";
exit 1;
}
# eval map table for each dynamic .inf file
foreach my $thisinf (@inffiles)
{
my $mapper = new Inf($mapfile);
my $infdatum = new Inf($thisinf);
push(@infdata, ($infdatum));
$mapper = process_maptbl($mapper, @infdata);
if ( NULL eq $mapper )
{
print "ERROR: failed to generate mapper\n";
exit 1;
}
# register server info
my $rc = register_serverinfo($conn, $mapper, @ldiffiles);
if ( 0 != $rc )
{
print "ERROR: failed to register server info\n";
return 1;
}
pop @infdata;
# in case handling multiple server instances,
# need to turn it off from the second loop.
$confds_fresh = 0;
}
$conn->close();
exit 0;
16 years, 10 months
[Fedora-directory-commits] adminserver Makefile.am, 1.7, 1.8 Makefile.in, 1.7, 1.8 aclocal.m4, 1.5, 1.6 configure, 1.6, 1.7 ltmain.sh, 1.2, 1.3
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/adminserver
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv17988
Modified Files:
Makefile.am Makefile.in aclocal.m4 configure ltmain.sh
Log Message:
Resolves: #237356
Summary: Move DS Admin Code into Admin Server (Comment #58)
Description: adding the server registeration script and its data files
Index: Makefile.am
===================================================================
RCS file: /cvs/dirsec/adminserver/Makefile.am,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile.am 8 Jun 2007 22:49:18 -0000 1.7
+++ Makefile.am 13 Jun 2007 17:48:34 -0000 1.8
@@ -111,20 +111,32 @@
lib_LTLIBRARIES = libds-admin-serv.la
+noinst_LIBRARIES = libdsa.a
+
DEFAULT_LIBS = libds-admin-serv.la @adminutil_lib@ -ladmsslutil@adminutil_ver@ -ladminutil@adminutil_ver@ \
@icu_lib@ -licui18n -licuuc -licudata @ldapsdk_lib@ -lssldap60 -lprldap60 -lldap60 -lldif60 \
@nss_lib@ -lsmime3 -lssl3 -lnss3 @nspr_lib@ -lnspr4 -lplc4
SETUPUTIL_LIBS = @setuputil_lib@ -ldsinstall
-ldif_DATA = admserv/schema/ldif/admintasks.ldif admserv/schema/ldif/adminglobal.ldif
+ldif_DATA = admserv/schema/ldif/00nsroot_backend.ldif.tmpl \
+ admserv/schema/ldif/01nsroot.ldif.tmpl \
+ admserv/schema/ldif/02globalpreferences.ldif.tmpl \
+ admserv/schema/ldif/10dsdata.ldif.tmpl \
+ admserv/schema/ldif/11dstasks.ldif.tmpl \
+ admserv/schema/ldif/20asdata.ldif.tmpl \
+ admserv/schema/ldif/21astasks.ldif.tmpl \
+ admserv/schema/ldif/22ascommands.ldif.tmpl
-inf_DATA = admserv/newinst/src/admin.inf
+inf_DATA = admserv/newinst/src/admin.inf admserv/newinst/src/register_param.map
cgibin_PROGRAMS = mergeConfig admpw security ugdsconfig ReadLog start_config_ds \
config statpingserv viewdata dsconfig monreplication restartsrv \
- statusping viewlog htmladmin sec-activate stopsrv download help
+ statusping viewlog htmladmin sec-activate stopsrv download help \
+ ds_start ds_restart ds_shutdown ds_ldif2db ds_db2ldif ds_bak2db \
+ ds_db2bak ds_listdb ds_rmdb ds_remove ds_snmpctrl ds_vlvindex ds_addindex
+bin_SCRIPTS = admserv/newinst/src/register_server.pl
cgibin_SCRIPTS = admserv/cgi-src40/Cgi.pm
nodist_cmdbin_SCRIPTS = admserv/cfgstuff/start-ds-admin admserv/cfgstuff/stop-ds-admin admserv/cfgstuff/restart-ds-admin
@@ -136,6 +148,22 @@
libds_admin_serv_la_SOURCES = $(libbase_a_SOURCES) $(libsi18n_a_SOURCES) $(libadmin_a_SOURCES)
+libdsa_a_SOURCES = lib/libdsa/dsalib_conf.c \
+ lib/libdsa/dsalib_debug.c \
+ lib/libdsa/dsalib_ldif.c \
+ lib/libdsa/dsalib_tailf.c \
+ lib/libdsa/dsalib_confs.c \
+ lib/libdsa/dsalib_dn.c \
+ lib/libdsa/dsalib_location.c \
+ lib/libdsa/dsalib_updown.c \
+ lib/libdsa/dsalib_db.c \
+ lib/libdsa/dsalib_filename.c \
+ lib/libdsa/dsalib_pw.c \
+ lib/libdsa/dsalib_util.c
+
+libdsa_a_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/include/libdsa @ldapsdk_inc@ @nss_inc@ @nspr_inc@
+libdsa_a_LIBADD = $(LDAPSDK_LINK) $(SASL_LINK) $(NSS_LINK) $(NSPR_LINK)
+
# source files for our CGI programs
download_SOURCES = admserv/cgi-src40/download.c
@@ -189,6 +217,59 @@
sec_activate_LDADD = $(DEFAULT_LIBS)
stopsrv_LDADD = $(DEFAULT_LIBS)
+# ds admin interfaces
+ds_start_SOURCES = admserv/cgi-ds/start.c admserv/cgi-ds/init_ds_env.c
+ds_start_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_start_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_restart_SOURCES = admserv/cgi-ds/restart.c admserv/cgi-ds/init_ds_env.c
+ds_restart_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_restart_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_shutdown_SOURCES = admserv/cgi-ds/shutdown.c admserv/cgi-ds/init_ds_env.c
+ds_shutdown_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_shutdown_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_ldif2db_SOURCES = admserv/cgi-ds/ds_ldif2db.c admserv/cgi-ds/init_ds_env.c
+ds_ldif2db_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_ldif2db_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_db2ldif_SOURCES = admserv/cgi-ds/ds_db2ldif.c admserv/cgi-ds/init_ds_env.c
+ds_db2ldif_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_db2ldif_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_bak2db_SOURCES = admserv/cgi-ds/ds_bak2db.c admserv/cgi-ds/init_ds_env.c
+ds_bak2db_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_bak2db_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_db2bak_SOURCES = admserv/cgi-ds/ds_db2bak.c admserv/cgi-ds/init_ds_env.c
+ds_db2bak_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_db2bak_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_listdb_SOURCES = admserv/cgi-ds/ds_listdb.c admserv/cgi-ds/init_ds_env.c
+ds_listdb_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_listdb_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_rmdb_SOURCES = admserv/cgi-ds/ds_rmdb.c admserv/cgi-ds/init_ds_env.c
+ds_rmdb_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_rmdb_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_remove_SOURCES = admserv/cgi-ds/ds_remove.c admserv/cgi-ds/init_ds_env.c
+ds_remove_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_remove_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_snmpctrl_SOURCES = admserv/cgi-ds/ds_snmpctrl.c admserv/cgi-ds/init_ds_env.c
+ds_snmpctrl_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_snmpctrl_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_vlvindex_SOURCES = admserv/cgi-ds/vlvindex.c admserv/cgi-ds/init_ds_env.c
+ds_vlvindex_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_vlvindex_LDADD = libdsa.a $(DEFAULT_LIBS)
+
+ds_addindex_SOURCES = admserv/cgi-ds/addindex.c admserv/cgi-ds/init_ds_env.c
+ds_addindex_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_addindex_LDADD = libdsa.a $(DEFAULT_LIBS)
+
# setup special
ds_admin_config_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS) @curses_lib@
ds_admin_remove_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
@@ -307,10 +388,12 @@
-e 's,@instancename\@,$(instancename),g' \
-e 's,@BUILD_NUM\@,$(BUILDNUM),g' \
-e 's,@NQBUILD_NUM\@,$(NQBUILDNUM),g' \
+ -e 's,@PACKAGE_BASE_NAME\@,$(PACKAGE_BASE_NAME),g' \
-e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
-e 's,@brand\@,$(brand),g' \
-e 's,@capbrand\@,$(capbrand),g' \
-e 's,@vendor\@,$(vendor),g' \
+ -e 's,@helpdir\@,$(helpdir),g' \
-e 's,@mimemagic\@,$(mimemagic),g' \
-e 's,@perldir\@,$(perldir),g'
Index: Makefile.in
===================================================================
RCS file: /cvs/dirsec/adminserver/Makefile.in,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- Makefile.in 8 Jun 2007 22:49:18 -0000 1.7
+++ Makefile.in 13 Jun 2007 17:48:34 -0000 1.8
@@ -17,6 +17,7 @@
+
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -47,7 +48,11 @@
viewdata$(EXEEXT) dsconfig$(EXEEXT) monreplication$(EXEEXT) \
restartsrv$(EXEEXT) statusping$(EXEEXT) viewlog$(EXEEXT) \
htmladmin$(EXEEXT) sec-activate$(EXEEXT) stopsrv$(EXEEXT) \
- download$(EXEEXT) help$(EXEEXT)
+ download$(EXEEXT) help$(EXEEXT) ds_start$(EXEEXT) \
+ ds_restart$(EXEEXT) ds_shutdown$(EXEEXT) ds_ldif2db$(EXEEXT) \
+ ds_db2ldif$(EXEEXT) ds_bak2db$(EXEEXT) ds_db2bak$(EXEEXT) \
+ ds_listdb$(EXEEXT) ds_rmdb$(EXEEXT) ds_remove$(EXEEXT) \
+ ds_snmpctrl$(EXEEXT) ds_vlvindex$(EXEEXT) ds_addindex$(EXEEXT)
cmdbin_PROGRAMS = ds-admin-config$(EXEEXT) ds-admin-remove$(EXEEXT) \
ds-admin-update$(EXEEXT)
DIST_COMMON = README $(am__configure_deps) $(dist_help_DATA) \
@@ -71,6 +76,24 @@
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+libdsa_a_AR = $(AR) $(ARFLAGS)
+libdsa_a_DEPENDENCIES =
+am__dirstamp = $(am__leading_dot)dirstamp
+am_libdsa_a_OBJECTS = lib/libdsa/libdsa_a-dsalib_conf.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_debug.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_ldif.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_tailf.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_confs.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_dn.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_location.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_updown.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_db.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_filename.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_pw.$(OBJEXT) \
+ lib/libdsa/libdsa_a-dsalib_util.$(OBJEXT)
+libdsa_a_OBJECTS = $(am_libdsa_a_OBJECTS)
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -78,17 +101,16 @@
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cgibindir)" \
- "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(cgibindir)" \
- "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(cmdbindir)" \
- "$(DESTDIR)$(perldir)" "$(DESTDIR)$(helpdir)" \
- "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(icondir)" \
- "$(DESTDIR)$(infdir)" "$(DESTDIR)$(ldifdir)" \
- "$(DESTDIR)$(configdir)" "$(DESTDIR)$(propertydir)" \
- "$(DESTDIR)$(propertydir)"
+ "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(cgibindir)" "$(DESTDIR)$(cmdbindir)" \
+ "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(perldir)" \
+ "$(DESTDIR)$(helpdir)" "$(DESTDIR)$(htmldir)" \
+ "$(DESTDIR)$(icondir)" "$(DESTDIR)$(infdir)" \
+ "$(DESTDIR)$(ldifdir)" "$(DESTDIR)$(configdir)" \
+ "$(DESTDIR)$(propertydir)" "$(DESTDIR)$(propertydir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libds_admin_serv_la_LIBADD =
-am__dirstamp = $(am__leading_dot)dirstamp
am__objects_1 = lib/base/file.lo lib/base/nscperror.lo \
lib/base/system.lo lib/base/nscputil.lo
am__objects_2 = lib/libsi18n/coreres.lo lib/libsi18n/getlang.lo \
@@ -135,6 +157,64 @@
ds_admin_update_OBJECTS = $(am_ds_admin_update_OBJECTS)
ds_admin_update_DEPENDENCIES = $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_1)
+am_ds_addindex_OBJECTS = \
+ admserv/cgi-ds/ds_addindex-addindex.$(OBJEXT) \
+ admserv/cgi-ds/ds_addindex-init_ds_env.$(OBJEXT)
+ds_addindex_OBJECTS = $(am_ds_addindex_OBJECTS)
+ds_addindex_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_bak2db_OBJECTS = admserv/cgi-ds/ds_bak2db-ds_bak2db.$(OBJEXT) \
+ admserv/cgi-ds/ds_bak2db-init_ds_env.$(OBJEXT)
+ds_bak2db_OBJECTS = $(am_ds_bak2db_OBJECTS)
+ds_bak2db_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_db2bak_OBJECTS = admserv/cgi-ds/ds_db2bak-ds_db2bak.$(OBJEXT) \
+ admserv/cgi-ds/ds_db2bak-init_ds_env.$(OBJEXT)
+ds_db2bak_OBJECTS = $(am_ds_db2bak_OBJECTS)
+ds_db2bak_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_db2ldif_OBJECTS = \
+ admserv/cgi-ds/ds_db2ldif-ds_db2ldif.$(OBJEXT) \
+ admserv/cgi-ds/ds_db2ldif-init_ds_env.$(OBJEXT)
+ds_db2ldif_OBJECTS = $(am_ds_db2ldif_OBJECTS)
+ds_db2ldif_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_ldif2db_OBJECTS = \
+ admserv/cgi-ds/ds_ldif2db-ds_ldif2db.$(OBJEXT) \
+ admserv/cgi-ds/ds_ldif2db-init_ds_env.$(OBJEXT)
+ds_ldif2db_OBJECTS = $(am_ds_ldif2db_OBJECTS)
+ds_ldif2db_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_listdb_OBJECTS = admserv/cgi-ds/ds_listdb-ds_listdb.$(OBJEXT) \
+ admserv/cgi-ds/ds_listdb-init_ds_env.$(OBJEXT)
+ds_listdb_OBJECTS = $(am_ds_listdb_OBJECTS)
+ds_listdb_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_remove_OBJECTS = admserv/cgi-ds/ds_remove-ds_remove.$(OBJEXT) \
+ admserv/cgi-ds/ds_remove-init_ds_env.$(OBJEXT)
+ds_remove_OBJECTS = $(am_ds_remove_OBJECTS)
+ds_remove_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_restart_OBJECTS = admserv/cgi-ds/ds_restart-restart.$(OBJEXT) \
+ admserv/cgi-ds/ds_restart-init_ds_env.$(OBJEXT)
+ds_restart_OBJECTS = $(am_ds_restart_OBJECTS)
+ds_restart_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_rmdb_OBJECTS = admserv/cgi-ds/ds_rmdb-ds_rmdb.$(OBJEXT) \
+ admserv/cgi-ds/ds_rmdb-init_ds_env.$(OBJEXT)
+ds_rmdb_OBJECTS = $(am_ds_rmdb_OBJECTS)
+ds_rmdb_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_shutdown_OBJECTS = \
+ admserv/cgi-ds/ds_shutdown-shutdown.$(OBJEXT) \
+ admserv/cgi-ds/ds_shutdown-init_ds_env.$(OBJEXT)
+ds_shutdown_OBJECTS = $(am_ds_shutdown_OBJECTS)
+ds_shutdown_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_snmpctrl_OBJECTS = \
+ admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.$(OBJEXT) \
+ admserv/cgi-ds/ds_snmpctrl-init_ds_env.$(OBJEXT)
+ds_snmpctrl_OBJECTS = $(am_ds_snmpctrl_OBJECTS)
+ds_snmpctrl_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_start_OBJECTS = admserv/cgi-ds/ds_start-start.$(OBJEXT) \
+ admserv/cgi-ds/ds_start-init_ds_env.$(OBJEXT)
+ds_start_OBJECTS = $(am_ds_start_OBJECTS)
+ds_start_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
+am_ds_vlvindex_OBJECTS = \
+ admserv/cgi-ds/ds_vlvindex-vlvindex.$(OBJEXT) \
+ admserv/cgi-ds/ds_vlvindex-init_ds_env.$(OBJEXT)
+ds_vlvindex_OBJECTS = $(am_ds_vlvindex_OBJECTS)
+ds_vlvindex_DEPENDENCIES = libdsa.a $(am__DEPENDENCIES_1)
am_dsconfig_OBJECTS = admserv/cgi-src40/dsconfig.$(OBJEXT)
dsconfig_OBJECTS = $(am_dsconfig_OBJECTS)
dsconfig_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -183,12 +263,13 @@
am_viewlog_OBJECTS = admserv/cgi-src40/viewlog.$(OBJEXT)
viewlog_OBJECTS = $(am_viewlog_OBJECTS)
viewlog_DEPENDENCIES = $(am__DEPENDENCIES_1)
+binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
cgibinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
cmdbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
nodist_cmdbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
perlSCRIPT_INSTALL = $(INSTALL_SCRIPT)
-SCRIPTS = $(cgibin_SCRIPTS) $(cmdbin_SCRIPTS) $(nodist_cmdbin_SCRIPTS) \
- $(perl_SCRIPTS)
+SCRIPTS = $(bin_SCRIPTS) $(cgibin_SCRIPTS) $(cmdbin_SCRIPTS) \
+ $(nodist_cmdbin_SCRIPTS) $(perl_SCRIPTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -208,21 +289,33 @@
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libds_admin_serv_la_SOURCES) $(ReadLog_SOURCES) \
- $(admpw_SOURCES) $(config_SOURCES) $(download_SOURCES) \
- $(ds_admin_config_SOURCES) $(ds_admin_remove_SOURCES) \
- $(ds_admin_update_SOURCES) $(dsconfig_SOURCES) $(help_SOURCES) \
- $(htmladmin_SOURCES) $(mergeConfig_SOURCES) \
+SOURCES = $(libdsa_a_SOURCES) $(libds_admin_serv_la_SOURCES) \
+ $(ReadLog_SOURCES) $(admpw_SOURCES) $(config_SOURCES) \
+ $(download_SOURCES) $(ds_admin_config_SOURCES) \
+ $(ds_admin_remove_SOURCES) $(ds_admin_update_SOURCES) \
+ $(ds_addindex_SOURCES) $(ds_bak2db_SOURCES) \
+ $(ds_db2bak_SOURCES) $(ds_db2ldif_SOURCES) \
+ $(ds_ldif2db_SOURCES) $(ds_listdb_SOURCES) \
+ $(ds_remove_SOURCES) $(ds_restart_SOURCES) $(ds_rmdb_SOURCES) \
+ $(ds_shutdown_SOURCES) $(ds_snmpctrl_SOURCES) \
+ $(ds_start_SOURCES) $(ds_vlvindex_SOURCES) $(dsconfig_SOURCES) \
+ $(help_SOURCES) $(htmladmin_SOURCES) $(mergeConfig_SOURCES) \
$(monreplication_SOURCES) $(restartsrv_SOURCES) \
$(sec_activate_SOURCES) $(security_SOURCES) \
$(start_config_ds_SOURCES) $(statpingserv_SOURCES) \
$(statusping_SOURCES) $(stopsrv_SOURCES) $(ugdsconfig_SOURCES) \
$(viewdata_SOURCES) $(viewlog_SOURCES)
-DIST_SOURCES = $(libds_admin_serv_la_SOURCES) $(ReadLog_SOURCES) \
- $(admpw_SOURCES) $(config_SOURCES) $(download_SOURCES) \
- $(ds_admin_config_SOURCES) $(ds_admin_remove_SOURCES) \
- $(ds_admin_update_SOURCES) $(dsconfig_SOURCES) $(help_SOURCES) \
- $(htmladmin_SOURCES) $(mergeConfig_SOURCES) \
+DIST_SOURCES = $(libdsa_a_SOURCES) $(libds_admin_serv_la_SOURCES) \
+ $(ReadLog_SOURCES) $(admpw_SOURCES) $(config_SOURCES) \
+ $(download_SOURCES) $(ds_admin_config_SOURCES) \
+ $(ds_admin_remove_SOURCES) $(ds_admin_update_SOURCES) \
+ $(ds_addindex_SOURCES) $(ds_bak2db_SOURCES) \
+ $(ds_db2bak_SOURCES) $(ds_db2ldif_SOURCES) \
+ $(ds_ldif2db_SOURCES) $(ds_listdb_SOURCES) \
+ $(ds_remove_SOURCES) $(ds_restart_SOURCES) $(ds_rmdb_SOURCES) \
+ $(ds_shutdown_SOURCES) $(ds_snmpctrl_SOURCES) \
+ $(ds_start_SOURCES) $(ds_vlvindex_SOURCES) $(dsconfig_SOURCES) \
+ $(help_SOURCES) $(htmladmin_SOURCES) $(mergeConfig_SOURCES) \
$(monreplication_SOURCES) $(restartsrv_SOURCES) \
$(sec_activate_SOURCES) $(security_SOURCES) \
$(start_config_ds_SOURCES) $(statpingserv_SOURCES) \
@@ -322,7 +415,6 @@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
-SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
@@ -486,18 +578,43 @@
-DLDIFDIR=\"$(ldifdir)\" -DBUILD_NUM=$(BUILDNUM) \
-DINFDIR=\"$(infdir)\" -DCGIBINDIR=\"$(cgibindir)\"
lib_LTLIBRARIES = libds-admin-serv.la
+noinst_LIBRARIES = libdsa.a
DEFAULT_LIBS = libds-admin-serv.la @adminutil_lib@ -ladmsslutil@adminutil_ver@ -ladminutil@adminutil_ver@ \
@icu_lib@ -licui18n -licuuc -licudata @ldapsdk_lib@ -lssldap60 -lprldap60 -lldap60 -lldif60 \
@nss_lib@ -lsmime3 -lssl3 -lnss3 @nspr_lib@ -lnspr4 -lplc4
SETUPUTIL_LIBS = @setuputil_lib@ -ldsinstall
-ldif_DATA = admserv/schema/ldif/admintasks.ldif admserv/schema/ldif/adminglobal.ldif
-inf_DATA = admserv/newinst/src/admin.inf
+ldif_DATA = admserv/schema/ldif/00nsroot_backend.ldif.tmpl \
+ admserv/schema/ldif/01nsroot.ldif.tmpl \
+ admserv/schema/ldif/02globalpreferences.ldif.tmpl \
+ admserv/schema/ldif/10dsdata.ldif.tmpl \
+ admserv/schema/ldif/11dstasks.ldif.tmpl \
+ admserv/schema/ldif/20asdata.ldif.tmpl \
+ admserv/schema/ldif/21astasks.ldif.tmpl \
+ admserv/schema/ldif/22ascommands.ldif.tmpl
+
+inf_DATA = admserv/newinst/src/admin.inf admserv/newinst/src/register_param.map
+bin_SCRIPTS = admserv/newinst/src/register_server.pl
cgibin_SCRIPTS = admserv/cgi-src40/Cgi.pm
nodist_cmdbin_SCRIPTS = admserv/cfgstuff/start-ds-admin admserv/cfgstuff/stop-ds-admin admserv/cfgstuff/restart-ds-admin
cmdbin_SCRIPTS = admserv/newinst/src/setup-ds-admin.pl
perl_SCRIPTS = admserv/newinst/src/ASDialogs.pm
libds_admin_serv_la_SOURCES = $(libbase_a_SOURCES) $(libsi18n_a_SOURCES) $(libadmin_a_SOURCES)
+libdsa_a_SOURCES = lib/libdsa/dsalib_conf.c \
+ lib/libdsa/dsalib_debug.c \
+ lib/libdsa/dsalib_ldif.c \
+ lib/libdsa/dsalib_tailf.c \
+ lib/libdsa/dsalib_confs.c \
+ lib/libdsa/dsalib_dn.c \
+ lib/libdsa/dsalib_location.c \
+ lib/libdsa/dsalib_updown.c \
+ lib/libdsa/dsalib_db.c \
+ lib/libdsa/dsalib_filename.c \
+ lib/libdsa/dsalib_pw.c \
+ lib/libdsa/dsalib_util.c
+
+libdsa_a_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/include/libdsa @ldapsdk_inc@ @nss_inc@ @nspr_inc@
+libdsa_a_LIBADD = $(LDAPSDK_LINK) $(SASL_LINK) $(NSS_LINK) $(NSPR_LINK)
# source files for our CGI programs
download_SOURCES = admserv/cgi-src40/download.c
@@ -550,6 +667,47 @@
sec_activate_LDADD = $(DEFAULT_LIBS)
stopsrv_LDADD = $(DEFAULT_LIBS)
+# ds admin interfaces
+ds_start_SOURCES = admserv/cgi-ds/start.c admserv/cgi-ds/init_ds_env.c
+ds_start_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_start_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_restart_SOURCES = admserv/cgi-ds/restart.c admserv/cgi-ds/init_ds_env.c
+ds_restart_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_restart_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_shutdown_SOURCES = admserv/cgi-ds/shutdown.c admserv/cgi-ds/init_ds_env.c
+ds_shutdown_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_shutdown_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_ldif2db_SOURCES = admserv/cgi-ds/ds_ldif2db.c admserv/cgi-ds/init_ds_env.c
+ds_ldif2db_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_ldif2db_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_db2ldif_SOURCES = admserv/cgi-ds/ds_db2ldif.c admserv/cgi-ds/init_ds_env.c
+ds_db2ldif_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_db2ldif_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_bak2db_SOURCES = admserv/cgi-ds/ds_bak2db.c admserv/cgi-ds/init_ds_env.c
+ds_bak2db_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_bak2db_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_db2bak_SOURCES = admserv/cgi-ds/ds_db2bak.c admserv/cgi-ds/init_ds_env.c
+ds_db2bak_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_db2bak_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_listdb_SOURCES = admserv/cgi-ds/ds_listdb.c admserv/cgi-ds/init_ds_env.c
+ds_listdb_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_listdb_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_rmdb_SOURCES = admserv/cgi-ds/ds_rmdb.c admserv/cgi-ds/init_ds_env.c
+ds_rmdb_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_rmdb_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_remove_SOURCES = admserv/cgi-ds/ds_remove.c admserv/cgi-ds/init_ds_env.c
+ds_remove_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_remove_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_snmpctrl_SOURCES = admserv/cgi-ds/ds_snmpctrl.c admserv/cgi-ds/init_ds_env.c
+ds_snmpctrl_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_snmpctrl_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_vlvindex_SOURCES = admserv/cgi-ds/vlvindex.c admserv/cgi-ds/init_ds_env.c
+ds_vlvindex_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_vlvindex_LDADD = libdsa.a $(DEFAULT_LIBS)
+ds_addindex_SOURCES = admserv/cgi-ds/addindex.c admserv/cgi-ds/init_ds_env.c
+ds_addindex_CPPFLAGS = -I$(srcdir)/include/libdsa $(AM_CPPFLAGS)
+ds_addindex_LDADD = libdsa.a $(DEFAULT_LIBS)
+
# setup special
ds_admin_config_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS) @curses_lib@
ds_admin_remove_LDADD = $(SETUPUTIL_LIBS) $(DEFAULT_LIBS)
@@ -646,10 +804,12 @@
-e 's,@instancename\@,$(instancename),g' \
-e 's,@BUILD_NUM\@,$(BUILDNUM),g' \
-e 's,@NQBUILD_NUM\@,$(NQBUILDNUM),g' \
+ -e 's,@PACKAGE_BASE_NAME\@,$(PACKAGE_BASE_NAME),g' \
-e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' \
-e 's,@brand\@,$(brand),g' \
-e 's,@capbrand\@,$(capbrand),g' \
-e 's,@vendor\@,$(vendor),g' \
+ -e 's,@helpdir\@,$(helpdir),g' \
-e 's,@mimemagic\@,$(mimemagic),g' \
-e 's,@perldir\@,$(perldir),g'
@@ -708,6 +868,49 @@
distclean-hdr:
-rm -f config.h stamp-h1
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+lib/libdsa/$(am__dirstamp):
+ @$(mkdir_p) lib/libdsa
+ @: > lib/libdsa/$(am__dirstamp)
+lib/libdsa/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) lib/libdsa/$(DEPDIR)
+ @: > lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_conf.$(OBJEXT): lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_debug.$(OBJEXT): \
+ lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_ldif.$(OBJEXT): lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_tailf.$(OBJEXT): \
+ lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_confs.$(OBJEXT): \
+ lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_dn.$(OBJEXT): lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_location.$(OBJEXT): \
+ lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_updown.$(OBJEXT): \
+ lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_db.$(OBJEXT): lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_filename.$(OBJEXT): \
+ lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_pw.$(OBJEXT): lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+lib/libdsa/libdsa_a-dsalib_util.$(OBJEXT): lib/libdsa/$(am__dirstamp) \
+ lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+libdsa.a: $(libdsa_a_OBJECTS) $(libdsa_a_DEPENDENCIES)
+ -rm -f libdsa.a
+ $(libdsa_a_AR) libdsa.a $(libdsa_a_OBJECTS) $(libdsa_a_LIBADD)
+ $(RANLIB) libdsa.a
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@@ -904,6 +1107,129 @@
ds-admin-update$(EXEEXT): $(ds_admin_update_OBJECTS) $(ds_admin_update_DEPENDENCIES)
@rm -f ds-admin-update$(EXEEXT)
$(CXXLINK) $(ds_admin_update_LDFLAGS) $(ds_admin_update_OBJECTS) $(ds_admin_update_LDADD) $(LIBS)
+admserv/cgi-ds/$(am__dirstamp):
+ @$(mkdir_p) admserv/cgi-ds
+ @: > admserv/cgi-ds/$(am__dirstamp)
+admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp):
+ @$(mkdir_p) admserv/cgi-ds/$(DEPDIR)
+ @: > admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_addindex-addindex.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_addindex-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_addindex$(EXEEXT): $(ds_addindex_OBJECTS) $(ds_addindex_DEPENDENCIES)
+ @rm -f ds_addindex$(EXEEXT)
+ $(LINK) $(ds_addindex_LDFLAGS) $(ds_addindex_OBJECTS) $(ds_addindex_LDADD) $(LIBS)
+admserv/cgi-ds/ds_bak2db-ds_bak2db.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_bak2db-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_bak2db$(EXEEXT): $(ds_bak2db_OBJECTS) $(ds_bak2db_DEPENDENCIES)
+ @rm -f ds_bak2db$(EXEEXT)
+ $(LINK) $(ds_bak2db_LDFLAGS) $(ds_bak2db_OBJECTS) $(ds_bak2db_LDADD) $(LIBS)
+admserv/cgi-ds/ds_db2bak-ds_db2bak.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_db2bak-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_db2bak$(EXEEXT): $(ds_db2bak_OBJECTS) $(ds_db2bak_DEPENDENCIES)
+ @rm -f ds_db2bak$(EXEEXT)
+ $(LINK) $(ds_db2bak_LDFLAGS) $(ds_db2bak_OBJECTS) $(ds_db2bak_LDADD) $(LIBS)
+admserv/cgi-ds/ds_db2ldif-ds_db2ldif.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_db2ldif-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_db2ldif$(EXEEXT): $(ds_db2ldif_OBJECTS) $(ds_db2ldif_DEPENDENCIES)
+ @rm -f ds_db2ldif$(EXEEXT)
+ $(LINK) $(ds_db2ldif_LDFLAGS) $(ds_db2ldif_OBJECTS) $(ds_db2ldif_LDADD) $(LIBS)
+admserv/cgi-ds/ds_ldif2db-ds_ldif2db.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_ldif2db-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_ldif2db$(EXEEXT): $(ds_ldif2db_OBJECTS) $(ds_ldif2db_DEPENDENCIES)
+ @rm -f ds_ldif2db$(EXEEXT)
+ $(LINK) $(ds_ldif2db_LDFLAGS) $(ds_ldif2db_OBJECTS) $(ds_ldif2db_LDADD) $(LIBS)
+admserv/cgi-ds/ds_listdb-ds_listdb.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_listdb-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_listdb$(EXEEXT): $(ds_listdb_OBJECTS) $(ds_listdb_DEPENDENCIES)
+ @rm -f ds_listdb$(EXEEXT)
+ $(LINK) $(ds_listdb_LDFLAGS) $(ds_listdb_OBJECTS) $(ds_listdb_LDADD) $(LIBS)
+admserv/cgi-ds/ds_remove-ds_remove.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_remove-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_remove$(EXEEXT): $(ds_remove_OBJECTS) $(ds_remove_DEPENDENCIES)
+ @rm -f ds_remove$(EXEEXT)
+ $(LINK) $(ds_remove_LDFLAGS) $(ds_remove_OBJECTS) $(ds_remove_LDADD) $(LIBS)
+admserv/cgi-ds/ds_restart-restart.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_restart-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_restart$(EXEEXT): $(ds_restart_OBJECTS) $(ds_restart_DEPENDENCIES)
+ @rm -f ds_restart$(EXEEXT)
+ $(LINK) $(ds_restart_LDFLAGS) $(ds_restart_OBJECTS) $(ds_restart_LDADD) $(LIBS)
+admserv/cgi-ds/ds_rmdb-ds_rmdb.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_rmdb-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_rmdb$(EXEEXT): $(ds_rmdb_OBJECTS) $(ds_rmdb_DEPENDENCIES)
+ @rm -f ds_rmdb$(EXEEXT)
+ $(LINK) $(ds_rmdb_LDFLAGS) $(ds_rmdb_OBJECTS) $(ds_rmdb_LDADD) $(LIBS)
+admserv/cgi-ds/ds_shutdown-shutdown.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_shutdown-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_shutdown$(EXEEXT): $(ds_shutdown_OBJECTS) $(ds_shutdown_DEPENDENCIES)
+ @rm -f ds_shutdown$(EXEEXT)
+ $(LINK) $(ds_shutdown_LDFLAGS) $(ds_shutdown_OBJECTS) $(ds_shutdown_LDADD) $(LIBS)
+admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_snmpctrl-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_snmpctrl$(EXEEXT): $(ds_snmpctrl_OBJECTS) $(ds_snmpctrl_DEPENDENCIES)
+ @rm -f ds_snmpctrl$(EXEEXT)
+ $(LINK) $(ds_snmpctrl_LDFLAGS) $(ds_snmpctrl_OBJECTS) $(ds_snmpctrl_LDADD) $(LIBS)
+admserv/cgi-ds/ds_start-start.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_start-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_start$(EXEEXT): $(ds_start_OBJECTS) $(ds_start_DEPENDENCIES)
+ @rm -f ds_start$(EXEEXT)
+ $(LINK) $(ds_start_LDFLAGS) $(ds_start_OBJECTS) $(ds_start_LDADD) $(LIBS)
+admserv/cgi-ds/ds_vlvindex-vlvindex.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+admserv/cgi-ds/ds_vlvindex-init_ds_env.$(OBJEXT): \
+ admserv/cgi-ds/$(am__dirstamp) \
+ admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ds_vlvindex$(EXEEXT): $(ds_vlvindex_OBJECTS) $(ds_vlvindex_DEPENDENCIES)
+ @rm -f ds_vlvindex$(EXEEXT)
+ $(LINK) $(ds_vlvindex_LDFLAGS) $(ds_vlvindex_OBJECTS) $(ds_vlvindex_LDADD) $(LIBS)
admserv/cgi-src40/dsconfig.$(OBJEXT): \
admserv/cgi-src40/$(am__dirstamp) \
admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
@@ -993,6 +1319,25 @@
viewlog$(EXEEXT): $(viewlog_OBJECTS) $(viewlog_DEPENDENCIES)
@rm -f viewlog$(EXEEXT)
$(LINK) $(viewlog_LDFLAGS) $(viewlog_OBJECTS) $(viewlog_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f $$d$$p; then \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; for p in $$list; do \
+ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ done
install-cgibinSCRIPTS: $(cgibin_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(cgibindir)" || $(mkdir_p) "$(DESTDIR)$(cgibindir)"
@@ -1072,6 +1417,32 @@
mostlyclean-compile:
-rm -f *.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_addindex-addindex.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_addindex-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_bak2db-ds_bak2db.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_bak2db-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_db2bak-ds_db2bak.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_db2bak-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_db2ldif-ds_db2ldif.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_db2ldif-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_ldif2db-ds_ldif2db.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_ldif2db-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_listdb-ds_listdb.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_listdb-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_remove-ds_remove.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_remove-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_restart-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_restart-restart.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_rmdb-ds_rmdb.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_rmdb-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_shutdown-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_shutdown-shutdown.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_snmpctrl-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_start-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_start-start.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_vlvindex-init_ds_env.$(OBJEXT)
+ -rm -f admserv/cgi-ds/ds_vlvindex-vlvindex.$(OBJEXT)
-rm -f admserv/cgi-src40/ReadLog.$(OBJEXT)
-rm -f admserv/cgi-src40/admpw.$(OBJEXT)
-rm -f admserv/cgi-src40/config.$(OBJEXT)
@@ -1121,6 +1492,18 @@
-rm -f lib/libadmin/template.lo
-rm -f lib/libadmin/util.$(OBJEXT)
-rm -f lib/libadmin/util.lo
+ -rm -f lib/libdsa/libdsa_a-dsalib_conf.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_confs.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_db.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_debug.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_dn.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_filename.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_ldif.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_location.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_pw.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_tailf.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_updown.$(OBJEXT)
+ -rm -f lib/libdsa/libdsa_a-dsalib_util.$(OBJEXT)
-rm -f lib/libsi18n/coreres.$(OBJEXT)
-rm -f lib/libsi18n/coreres.lo
-rm -f lib/libsi18n/getlang.$(OBJEXT)
@@ -1137,6 +1520,32 @@
distclean-compile:
-rm -f *.tab.c
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_start-start.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/ReadLog.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/admpw.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@admserv/cgi-src40/$(DEPDIR)/config.Po(a)am__quote@
@@ -1173,6 +1582,18 @@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/referer.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/template.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libadmin/$(DEPDIR)/util.Plo(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Po(a)am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Po(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/coreres.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/getlang.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/libsi18n/$(DEPDIR)/getstrprop.Plo(a)am__quote@
@@ -1204,6 +1625,538 @@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+lib/libdsa/libdsa_a-dsalib_conf.o: lib/libdsa/dsalib_conf.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_conf.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_conf.o `test -f 'lib/libdsa/dsalib_conf.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_conf.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_conf.c' object='lib/libdsa/libdsa_a-dsalib_conf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_conf.o `test -f 'lib/libdsa/dsalib_conf.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_conf.c
+
+lib/libdsa/libdsa_a-dsalib_conf.obj: lib/libdsa/dsalib_conf.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_conf.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_conf.obj `if test -f 'lib/libdsa/dsalib_conf.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_conf.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_conf.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_conf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_conf.c' object='lib/libdsa/libdsa_a-dsalib_conf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_conf.obj `if test -f 'lib/libdsa/dsalib_conf.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_conf.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_conf.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_debug.o: lib/libdsa/dsalib_debug.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_debug.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_debug.o `test -f 'lib/libdsa/dsalib_debug.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_debug.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_debug.c' object='lib/libdsa/libdsa_a-dsalib_debug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_debug.o `test -f 'lib/libdsa/dsalib_debug.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_debug.c
+
+lib/libdsa/libdsa_a-dsalib_debug.obj: lib/libdsa/dsalib_debug.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_debug.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_debug.obj `if test -f 'lib/libdsa/dsalib_debug.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_debug.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_debug.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_debug.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_debug.c' object='lib/libdsa/libdsa_a-dsalib_debug.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_debug.obj `if test -f 'lib/libdsa/dsalib_debug.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_debug.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_debug.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_ldif.o: lib/libdsa/dsalib_ldif.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_ldif.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_ldif.o `test -f 'lib/libdsa/dsalib_ldif.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_ldif.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_ldif.c' object='lib/libdsa/libdsa_a-dsalib_ldif.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_ldif.o `test -f 'lib/libdsa/dsalib_ldif.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_ldif.c
+
+lib/libdsa/libdsa_a-dsalib_ldif.obj: lib/libdsa/dsalib_ldif.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_ldif.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_ldif.obj `if test -f 'lib/libdsa/dsalib_ldif.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_ldif.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_ldif.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_ldif.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_ldif.c' object='lib/libdsa/libdsa_a-dsalib_ldif.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_ldif.obj `if test -f 'lib/libdsa/dsalib_ldif.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_ldif.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_ldif.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_tailf.o: lib/libdsa/dsalib_tailf.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_tailf.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_tailf.o `test -f 'lib/libdsa/dsalib_tailf.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_tailf.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_tailf.c' object='lib/libdsa/libdsa_a-dsalib_tailf.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_tailf.o `test -f 'lib/libdsa/dsalib_tailf.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_tailf.c
+
+lib/libdsa/libdsa_a-dsalib_tailf.obj: lib/libdsa/dsalib_tailf.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_tailf.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_tailf.obj `if test -f 'lib/libdsa/dsalib_tailf.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_tailf.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_tailf.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_tailf.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_tailf.c' object='lib/libdsa/libdsa_a-dsalib_tailf.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_tailf.obj `if test -f 'lib/libdsa/dsalib_tailf.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_tailf.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_tailf.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_confs.o: lib/libdsa/dsalib_confs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_confs.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_confs.o `test -f 'lib/libdsa/dsalib_confs.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_confs.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_confs.c' object='lib/libdsa/libdsa_a-dsalib_confs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_confs.o `test -f 'lib/libdsa/dsalib_confs.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_confs.c
+
+lib/libdsa/libdsa_a-dsalib_confs.obj: lib/libdsa/dsalib_confs.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_confs.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_confs.obj `if test -f 'lib/libdsa/dsalib_confs.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_confs.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_confs.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_confs.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_confs.c' object='lib/libdsa/libdsa_a-dsalib_confs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_confs.obj `if test -f 'lib/libdsa/dsalib_confs.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_confs.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_confs.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_dn.o: lib/libdsa/dsalib_dn.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_dn.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_dn.o `test -f 'lib/libdsa/dsalib_dn.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_dn.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_dn.c' object='lib/libdsa/libdsa_a-dsalib_dn.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_dn.o `test -f 'lib/libdsa/dsalib_dn.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_dn.c
+
+lib/libdsa/libdsa_a-dsalib_dn.obj: lib/libdsa/dsalib_dn.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_dn.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_dn.obj `if test -f 'lib/libdsa/dsalib_dn.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_dn.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_dn.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_dn.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_dn.c' object='lib/libdsa/libdsa_a-dsalib_dn.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_dn.obj `if test -f 'lib/libdsa/dsalib_dn.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_dn.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_dn.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_location.o: lib/libdsa/dsalib_location.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_location.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_location.o `test -f 'lib/libdsa/dsalib_location.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_location.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_location.c' object='lib/libdsa/libdsa_a-dsalib_location.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_location.o `test -f 'lib/libdsa/dsalib_location.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_location.c
+
+lib/libdsa/libdsa_a-dsalib_location.obj: lib/libdsa/dsalib_location.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_location.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_location.obj `if test -f 'lib/libdsa/dsalib_location.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_location.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_location.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_location.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_location.c' object='lib/libdsa/libdsa_a-dsalib_location.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_location.obj `if test -f 'lib/libdsa/dsalib_location.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_location.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_location.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_updown.o: lib/libdsa/dsalib_updown.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_updown.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_updown.o `test -f 'lib/libdsa/dsalib_updown.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_updown.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_updown.c' object='lib/libdsa/libdsa_a-dsalib_updown.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_updown.o `test -f 'lib/libdsa/dsalib_updown.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_updown.c
+
+lib/libdsa/libdsa_a-dsalib_updown.obj: lib/libdsa/dsalib_updown.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_updown.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_updown.obj `if test -f 'lib/libdsa/dsalib_updown.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_updown.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_updown.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_updown.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_updown.c' object='lib/libdsa/libdsa_a-dsalib_updown.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_updown.obj `if test -f 'lib/libdsa/dsalib_updown.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_updown.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_updown.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_db.o: lib/libdsa/dsalib_db.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_db.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_db.o `test -f 'lib/libdsa/dsalib_db.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_db.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_db.c' object='lib/libdsa/libdsa_a-dsalib_db.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_db.o `test -f 'lib/libdsa/dsalib_db.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_db.c
+
+lib/libdsa/libdsa_a-dsalib_db.obj: lib/libdsa/dsalib_db.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_db.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_db.obj `if test -f 'lib/libdsa/dsalib_db.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_db.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_db.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_db.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_db.c' object='lib/libdsa/libdsa_a-dsalib_db.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_db.obj `if test -f 'lib/libdsa/dsalib_db.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_db.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_db.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_filename.o: lib/libdsa/dsalib_filename.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_filename.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_filename.o `test -f 'lib/libdsa/dsalib_filename.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_filename.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_filename.c' object='lib/libdsa/libdsa_a-dsalib_filename.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_filename.o `test -f 'lib/libdsa/dsalib_filename.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_filename.c
+
+lib/libdsa/libdsa_a-dsalib_filename.obj: lib/libdsa/dsalib_filename.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_filename.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_filename.obj `if test -f 'lib/libdsa/dsalib_filename.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_filename.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_filename.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_filename.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_filename.c' object='lib/libdsa/libdsa_a-dsalib_filename.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_filename.obj `if test -f 'lib/libdsa/dsalib_filename.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_filename.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_filename.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_pw.o: lib/libdsa/dsalib_pw.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_pw.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_pw.o `test -f 'lib/libdsa/dsalib_pw.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_pw.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_pw.c' object='lib/libdsa/libdsa_a-dsalib_pw.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_pw.o `test -f 'lib/libdsa/dsalib_pw.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_pw.c
+
+lib/libdsa/libdsa_a-dsalib_pw.obj: lib/libdsa/dsalib_pw.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_pw.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_pw.obj `if test -f 'lib/libdsa/dsalib_pw.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_pw.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_pw.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_pw.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_pw.c' object='lib/libdsa/libdsa_a-dsalib_pw.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_pw.obj `if test -f 'lib/libdsa/dsalib_pw.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_pw.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_pw.c'; fi`
+
+lib/libdsa/libdsa_a-dsalib_util.o: lib/libdsa/dsalib_util.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_util.o -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_util.o `test -f 'lib/libdsa/dsalib_util.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_util.c; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_util.c' object='lib/libdsa/libdsa_a-dsalib_util.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_util.o `test -f 'lib/libdsa/dsalib_util.c' || echo '$(srcdir)/'`lib/libdsa/dsalib_util.c
+
+lib/libdsa/libdsa_a-dsalib_util.obj: lib/libdsa/dsalib_util.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/libdsa/libdsa_a-dsalib_util.obj -MD -MP -MF "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Tpo" -c -o lib/libdsa/libdsa_a-dsalib_util.obj `if test -f 'lib/libdsa/dsalib_util.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_util.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_util.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Tpo" "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Po"; else rm -f "lib/libdsa/$(DEPDIR)/libdsa_a-dsalib_util.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/libdsa/dsalib_util.c' object='lib/libdsa/libdsa_a-dsalib_util.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libdsa_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/libdsa/libdsa_a-dsalib_util.obj `if test -f 'lib/libdsa/dsalib_util.c'; then $(CYGPATH_W) 'lib/libdsa/dsalib_util.c'; else $(CYGPATH_W) '$(srcdir)/lib/libdsa/dsalib_util.c'; fi`
+
+admserv/cgi-ds/ds_addindex-addindex.o: admserv/cgi-ds/addindex.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_addindex-addindex.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Tpo" -c -o admserv/cgi-ds/ds_addindex-addindex.o `test -f 'admserv/cgi-ds/addindex.c' || echo '$(srcdir)/'`admserv/cgi-ds/addindex.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/addindex.c' object='admserv/cgi-ds/ds_addindex-addindex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_addindex-addindex.o `test -f 'admserv/cgi-ds/addindex.c' || echo '$(srcdir)/'`admserv/cgi-ds/addindex.c
+
+admserv/cgi-ds/ds_addindex-addindex.obj: admserv/cgi-ds/addindex.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_addindex-addindex.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Tpo" -c -o admserv/cgi-ds/ds_addindex-addindex.obj `if test -f 'admserv/cgi-ds/addindex.c'; then $(CYGPATH_W) 'admserv/cgi-ds/addindex.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/addindex.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-addindex.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/addindex.c' object='admserv/cgi-ds/ds_addindex-addindex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_addindex-addindex.obj `if test -f 'admserv/cgi-ds/addindex.c'; then $(CYGPATH_W) 'admserv/cgi-ds/addindex.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/addindex.c'; fi`
+
+admserv/cgi-ds/ds_addindex-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_addindex-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_addindex-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_addindex-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_addindex-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_addindex-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_addindex-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_addindex-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_addindex-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_addindex-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_addindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_addindex-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_bak2db-ds_bak2db.o: admserv/cgi-ds/ds_bak2db.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_bak2db-ds_bak2db.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Tpo" -c -o admserv/cgi-ds/ds_bak2db-ds_bak2db.o `test -f 'admserv/cgi-ds/ds_bak2db.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_bak2db.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_bak2db.c' object='admserv/cgi-ds/ds_bak2db-ds_bak2db.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_bak2db-ds_bak2db.o `test -f 'admserv/cgi-ds/ds_bak2db.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_bak2db.c
+
+admserv/cgi-ds/ds_bak2db-ds_bak2db.obj: admserv/cgi-ds/ds_bak2db.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_bak2db-ds_bak2db.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Tpo" -c -o admserv/cgi-ds/ds_bak2db-ds_bak2db.obj `if test -f 'admserv/cgi-ds/ds_bak2db.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_bak2db.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_bak2db.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-ds_bak2db.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_bak2db.c' object='admserv/cgi-ds/ds_bak2db-ds_bak2db.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_bak2db-ds_bak2db.obj `if test -f 'admserv/cgi-ds/ds_bak2db.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_bak2db.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_bak2db.c'; fi`
+
+admserv/cgi-ds/ds_bak2db-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_bak2db-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_bak2db-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_bak2db-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_bak2db-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_bak2db-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_bak2db-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_bak2db-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_bak2db-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_bak2db-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_bak2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_bak2db-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_db2bak-ds_db2bak.o: admserv/cgi-ds/ds_db2bak.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2bak-ds_db2bak.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Tpo" -c -o admserv/cgi-ds/ds_db2bak-ds_db2bak.o `test -f 'admserv/cgi-ds/ds_db2bak.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_db2bak.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_db2bak.c' object='admserv/cgi-ds/ds_db2bak-ds_db2bak.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2bak-ds_db2bak.o `test -f 'admserv/cgi-ds/ds_db2bak.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_db2bak.c
+
+admserv/cgi-ds/ds_db2bak-ds_db2bak.obj: admserv/cgi-ds/ds_db2bak.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2bak-ds_db2bak.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Tpo" -c -o admserv/cgi-ds/ds_db2bak-ds_db2bak.obj `if test -f 'admserv/cgi-ds/ds_db2bak.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_db2bak.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_db2bak.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-ds_db2bak.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_db2bak.c' object='admserv/cgi-ds/ds_db2bak-ds_db2bak.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2bak-ds_db2bak.obj `if test -f 'admserv/cgi-ds/ds_db2bak.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_db2bak.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_db2bak.c'; fi`
+
+admserv/cgi-ds/ds_db2bak-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2bak-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_db2bak-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_db2bak-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2bak-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_db2bak-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2bak-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_db2bak-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2bak-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_db2bak-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2bak_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2bak-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_db2ldif-ds_db2ldif.o: admserv/cgi-ds/ds_db2ldif.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2ldif-ds_db2ldif.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Tpo" -c -o admserv/cgi-ds/ds_db2ldif-ds_db2ldif.o `test -f 'admserv/cgi-ds/ds_db2ldif.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_db2ldif.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_db2ldif.c' object='admserv/cgi-ds/ds_db2ldif-ds_db2ldif.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2ldif-ds_db2ldif.o `test -f 'admserv/cgi-ds/ds_db2ldif.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_db2ldif.c
+
+admserv/cgi-ds/ds_db2ldif-ds_db2ldif.obj: admserv/cgi-ds/ds_db2ldif.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2ldif-ds_db2ldif.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Tpo" -c -o admserv/cgi-ds/ds_db2ldif-ds_db2ldif.obj `if test -f 'admserv/cgi-ds/ds_db2ldif.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_db2ldif.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_db2ldif.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-ds_db2ldif.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_db2ldif.c' object='admserv/cgi-ds/ds_db2ldif-ds_db2ldif.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2ldif-ds_db2ldif.obj `if test -f 'admserv/cgi-ds/ds_db2ldif.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_db2ldif.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_db2ldif.c'; fi`
+
+admserv/cgi-ds/ds_db2ldif-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2ldif-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_db2ldif-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_db2ldif-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2ldif-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_db2ldif-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_db2ldif-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_db2ldif-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_db2ldif-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_db2ldif-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_db2ldif_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_db2ldif-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_ldif2db-ds_ldif2db.o: admserv/cgi-ds/ds_ldif2db.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_ldif2db-ds_ldif2db.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Tpo" -c -o admserv/cgi-ds/ds_ldif2db-ds_ldif2db.o `test -f 'admserv/cgi-ds/ds_ldif2db.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_ldif2db.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_ldif2db.c' object='admserv/cgi-ds/ds_ldif2db-ds_ldif2db.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_ldif2db-ds_ldif2db.o `test -f 'admserv/cgi-ds/ds_ldif2db.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_ldif2db.c
+
+admserv/cgi-ds/ds_ldif2db-ds_ldif2db.obj: admserv/cgi-ds/ds_ldif2db.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_ldif2db-ds_ldif2db.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Tpo" -c -o admserv/cgi-ds/ds_ldif2db-ds_ldif2db.obj `if test -f 'admserv/cgi-ds/ds_ldif2db.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_ldif2db.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_ldif2db.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-ds_ldif2db.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_ldif2db.c' object='admserv/cgi-ds/ds_ldif2db-ds_ldif2db.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_ldif2db-ds_ldif2db.obj `if test -f 'admserv/cgi-ds/ds_ldif2db.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_ldif2db.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_ldif2db.c'; fi`
+
+admserv/cgi-ds/ds_ldif2db-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_ldif2db-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_ldif2db-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_ldif2db-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_ldif2db-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_ldif2db-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_ldif2db-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_ldif2db-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_ldif2db-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_ldif2db-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_ldif2db_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_ldif2db-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_listdb-ds_listdb.o: admserv/cgi-ds/ds_listdb.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_listdb-ds_listdb.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Tpo" -c -o admserv/cgi-ds/ds_listdb-ds_listdb.o `test -f 'admserv/cgi-ds/ds_listdb.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_listdb.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_listdb.c' object='admserv/cgi-ds/ds_listdb-ds_listdb.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_listdb-ds_listdb.o `test -f 'admserv/cgi-ds/ds_listdb.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_listdb.c
+
+admserv/cgi-ds/ds_listdb-ds_listdb.obj: admserv/cgi-ds/ds_listdb.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_listdb-ds_listdb.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Tpo" -c -o admserv/cgi-ds/ds_listdb-ds_listdb.obj `if test -f 'admserv/cgi-ds/ds_listdb.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_listdb.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_listdb.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-ds_listdb.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_listdb.c' object='admserv/cgi-ds/ds_listdb-ds_listdb.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_listdb-ds_listdb.obj `if test -f 'admserv/cgi-ds/ds_listdb.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_listdb.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_listdb.c'; fi`
+
+admserv/cgi-ds/ds_listdb-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_listdb-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_listdb-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_listdb-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_listdb-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_listdb-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_listdb-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_listdb-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_listdb-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_listdb-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_listdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_listdb-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_remove-ds_remove.o: admserv/cgi-ds/ds_remove.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_remove-ds_remove.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Tpo" -c -o admserv/cgi-ds/ds_remove-ds_remove.o `test -f 'admserv/cgi-ds/ds_remove.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_remove.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_remove.c' object='admserv/cgi-ds/ds_remove-ds_remove.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_remove-ds_remove.o `test -f 'admserv/cgi-ds/ds_remove.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_remove.c
+
+admserv/cgi-ds/ds_remove-ds_remove.obj: admserv/cgi-ds/ds_remove.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_remove-ds_remove.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Tpo" -c -o admserv/cgi-ds/ds_remove-ds_remove.obj `if test -f 'admserv/cgi-ds/ds_remove.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_remove.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_remove.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-ds_remove.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_remove.c' object='admserv/cgi-ds/ds_remove-ds_remove.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_remove-ds_remove.obj `if test -f 'admserv/cgi-ds/ds_remove.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_remove.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_remove.c'; fi`
+
+admserv/cgi-ds/ds_remove-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_remove-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_remove-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_remove-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_remove-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_remove-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_remove-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_remove-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_remove-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_remove-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_remove_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_remove-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_restart-restart.o: admserv/cgi-ds/restart.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_restart-restart.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Tpo" -c -o admserv/cgi-ds/ds_restart-restart.o `test -f 'admserv/cgi-ds/restart.c' || echo '$(srcdir)/'`admserv/cgi-ds/restart.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/restart.c' object='admserv/cgi-ds/ds_restart-restart.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_restart-restart.o `test -f 'admserv/cgi-ds/restart.c' || echo '$(srcdir)/'`admserv/cgi-ds/restart.c
+
+admserv/cgi-ds/ds_restart-restart.obj: admserv/cgi-ds/restart.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_restart-restart.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Tpo" -c -o admserv/cgi-ds/ds_restart-restart.obj `if test -f 'admserv/cgi-ds/restart.c'; then $(CYGPATH_W) 'admserv/cgi-ds/restart.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/restart.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-restart.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/restart.c' object='admserv/cgi-ds/ds_restart-restart.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_restart-restart.obj `if test -f 'admserv/cgi-ds/restart.c'; then $(CYGPATH_W) 'admserv/cgi-ds/restart.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/restart.c'; fi`
+
+admserv/cgi-ds/ds_restart-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_restart-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_restart-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_restart-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_restart-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_restart-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_restart-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_restart-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_restart-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_restart-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_restart_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_restart-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_rmdb-ds_rmdb.o: admserv/cgi-ds/ds_rmdb.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_rmdb-ds_rmdb.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Tpo" -c -o admserv/cgi-ds/ds_rmdb-ds_rmdb.o `test -f 'admserv/cgi-ds/ds_rmdb.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_rmdb.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_rmdb.c' object='admserv/cgi-ds/ds_rmdb-ds_rmdb.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_rmdb-ds_rmdb.o `test -f 'admserv/cgi-ds/ds_rmdb.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_rmdb.c
+
+admserv/cgi-ds/ds_rmdb-ds_rmdb.obj: admserv/cgi-ds/ds_rmdb.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_rmdb-ds_rmdb.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Tpo" -c -o admserv/cgi-ds/ds_rmdb-ds_rmdb.obj `if test -f 'admserv/cgi-ds/ds_rmdb.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_rmdb.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_rmdb.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-ds_rmdb.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_rmdb.c' object='admserv/cgi-ds/ds_rmdb-ds_rmdb.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_rmdb-ds_rmdb.obj `if test -f 'admserv/cgi-ds/ds_rmdb.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_rmdb.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_rmdb.c'; fi`
+
+admserv/cgi-ds/ds_rmdb-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_rmdb-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_rmdb-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_rmdb-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_rmdb-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_rmdb-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_rmdb-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_rmdb-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_rmdb-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_rmdb-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_rmdb_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_rmdb-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_shutdown-shutdown.o: admserv/cgi-ds/shutdown.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_shutdown-shutdown.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Tpo" -c -o admserv/cgi-ds/ds_shutdown-shutdown.o `test -f 'admserv/cgi-ds/shutdown.c' || echo '$(srcdir)/'`admserv/cgi-ds/shutdown.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/shutdown.c' object='admserv/cgi-ds/ds_shutdown-shutdown.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_shutdown-shutdown.o `test -f 'admserv/cgi-ds/shutdown.c' || echo '$(srcdir)/'`admserv/cgi-ds/shutdown.c
+
+admserv/cgi-ds/ds_shutdown-shutdown.obj: admserv/cgi-ds/shutdown.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_shutdown-shutdown.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Tpo" -c -o admserv/cgi-ds/ds_shutdown-shutdown.obj `if test -f 'admserv/cgi-ds/shutdown.c'; then $(CYGPATH_W) 'admserv/cgi-ds/shutdown.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/shutdown.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-shutdown.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/shutdown.c' object='admserv/cgi-ds/ds_shutdown-shutdown.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_shutdown-shutdown.obj `if test -f 'admserv/cgi-ds/shutdown.c'; then $(CYGPATH_W) 'admserv/cgi-ds/shutdown.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/shutdown.c'; fi`
+
+admserv/cgi-ds/ds_shutdown-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_shutdown-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_shutdown-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_shutdown-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_shutdown-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_shutdown-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_shutdown-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_shutdown-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_shutdown-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_shutdown-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_shutdown_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_shutdown-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.o: admserv/cgi-ds/ds_snmpctrl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Tpo" -c -o admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.o `test -f 'admserv/cgi-ds/ds_snmpctrl.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_snmpctrl.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_snmpctrl.c' object='admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.o `test -f 'admserv/cgi-ds/ds_snmpctrl.c' || echo '$(srcdir)/'`admserv/cgi-ds/ds_snmpctrl.c
+
+admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.obj: admserv/cgi-ds/ds_snmpctrl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Tpo" -c -o admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.obj `if test -f 'admserv/cgi-ds/ds_snmpctrl.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_snmpctrl.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_snmpctrl.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-ds_snmpctrl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/ds_snmpctrl.c' object='admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_snmpctrl-ds_snmpctrl.obj `if test -f 'admserv/cgi-ds/ds_snmpctrl.c'; then $(CYGPATH_W) 'admserv/cgi-ds/ds_snmpctrl.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/ds_snmpctrl.c'; fi`
+
+admserv/cgi-ds/ds_snmpctrl-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_snmpctrl-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_snmpctrl-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_snmpctrl-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_snmpctrl-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_snmpctrl-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_snmpctrl-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_snmpctrl-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_snmpctrl-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_snmpctrl-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_snmpctrl_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_snmpctrl-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_start-start.o: admserv/cgi-ds/start.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_start-start.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Tpo" -c -o admserv/cgi-ds/ds_start-start.o `test -f 'admserv/cgi-ds/start.c' || echo '$(srcdir)/'`admserv/cgi-ds/start.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/start.c' object='admserv/cgi-ds/ds_start-start.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_start-start.o `test -f 'admserv/cgi-ds/start.c' || echo '$(srcdir)/'`admserv/cgi-ds/start.c
+
+admserv/cgi-ds/ds_start-start.obj: admserv/cgi-ds/start.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_start-start.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Tpo" -c -o admserv/cgi-ds/ds_start-start.obj `if test -f 'admserv/cgi-ds/start.c'; then $(CYGPATH_W) 'admserv/cgi-ds/start.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/start.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_start-start.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/start.c' object='admserv/cgi-ds/ds_start-start.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_start-start.obj `if test -f 'admserv/cgi-ds/start.c'; then $(CYGPATH_W) 'admserv/cgi-ds/start.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/start.c'; fi`
+
+admserv/cgi-ds/ds_start-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_start-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_start-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_start-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_start-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_start-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_start-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_start-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_start-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_start-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_start_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_start-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
+admserv/cgi-ds/ds_vlvindex-vlvindex.o: admserv/cgi-ds/vlvindex.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_vlvindex-vlvindex.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Tpo" -c -o admserv/cgi-ds/ds_vlvindex-vlvindex.o `test -f 'admserv/cgi-ds/vlvindex.c' || echo '$(srcdir)/'`admserv/cgi-ds/vlvindex.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/vlvindex.c' object='admserv/cgi-ds/ds_vlvindex-vlvindex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_vlvindex-vlvindex.o `test -f 'admserv/cgi-ds/vlvindex.c' || echo '$(srcdir)/'`admserv/cgi-ds/vlvindex.c
+
+admserv/cgi-ds/ds_vlvindex-vlvindex.obj: admserv/cgi-ds/vlvindex.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_vlvindex-vlvindex.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Tpo" -c -o admserv/cgi-ds/ds_vlvindex-vlvindex.obj `if test -f 'admserv/cgi-ds/vlvindex.c'; then $(CYGPATH_W) 'admserv/cgi-ds/vlvindex.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/vlvindex.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-vlvindex.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/vlvindex.c' object='admserv/cgi-ds/ds_vlvindex-vlvindex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_vlvindex-vlvindex.obj `if test -f 'admserv/cgi-ds/vlvindex.c'; then $(CYGPATH_W) 'admserv/cgi-ds/vlvindex.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/vlvindex.c'; fi`
+
+admserv/cgi-ds/ds_vlvindex-init_ds_env.o: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_vlvindex-init_ds_env.o -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_vlvindex-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_vlvindex-init_ds_env.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_vlvindex-init_ds_env.o `test -f 'admserv/cgi-ds/init_ds_env.c' || echo '$(srcdir)/'`admserv/cgi-ds/init_ds_env.c
+
+admserv/cgi-ds/ds_vlvindex-init_ds_env.obj: admserv/cgi-ds/init_ds_env.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT admserv/cgi-ds/ds_vlvindex-init_ds_env.obj -MD -MP -MF "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Tpo" -c -o admserv/cgi-ds/ds_vlvindex-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Tpo" "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Po"; else rm -f "admserv/cgi-ds/$(DEPDIR)/ds_vlvindex-init_ds_env.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='admserv/cgi-ds/init_ds_env.c' object='admserv/cgi-ds/ds_vlvindex-init_ds_env.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ds_vlvindex_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o admserv/cgi-ds/ds_vlvindex-init_ds_env.obj `if test -f 'admserv/cgi-ds/init_ds_env.c'; then $(CYGPATH_W) 'admserv/cgi-ds/init_ds_env.c'; else $(CYGPATH_W) '$(srcdir)/admserv/cgi-ds/init_ds_env.c'; fi`
+
.cc.o:
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
@@ -1747,11 +2700,11 @@
exit 1; } >&2
check-am: all-am
check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
- config.h
+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) \
+ $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cgibindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(cgibindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(perldir)" "$(DESTDIR)$(helpdir)" "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(icondir)" "$(DESTDIR)$(infdir)" "$(DESTDIR)$(ldifdir)" "$(DESTDIR)$(configdir)" "$(DESTDIR)$(propertydir)" "$(DESTDIR)$(propertydir)"; do \
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cgibindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(cgibindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(cmdbindir)" "$(DESTDIR)$(perldir)" "$(DESTDIR)$(helpdir)" "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(icondir)" "$(DESTDIR)$(infdir)" "$(DESTDIR)$(ldifdir)" "$(DESTDIR)$(configdir)" "$(DESTDIR)$(propertydir)" "$(DESTDIR)$(propertydir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-recursive
@@ -1775,6 +2728,8 @@
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -rm -f admserv/cgi-ds/$(DEPDIR)/$(am__dirstamp)
+ -rm -f admserv/cgi-ds/$(am__dirstamp)
-rm -f admserv/cgi-src40/$(DEPDIR)/$(am__dirstamp)
-rm -f admserv/cgi-src40/$(am__dirstamp)
-rm -f admserv/newinst/src/$(DEPDIR)/$(am__dirstamp)
@@ -1783,6 +2738,8 @@
-rm -f lib/base/$(am__dirstamp)
-rm -f lib/libadmin/$(DEPDIR)/$(am__dirstamp)
-rm -f lib/libadmin/$(am__dirstamp)
+ -rm -f lib/libdsa/$(DEPDIR)/$(am__dirstamp)
+ -rm -f lib/libdsa/$(am__dirstamp)
-rm -f lib/libsi18n/$(DEPDIR)/$(am__dirstamp)
-rm -f lib/libsi18n/$(am__dirstamp)
@@ -1792,11 +2749,12 @@
clean: clean-recursive
clean-am: clean-cgibinPROGRAMS clean-cmdbinPROGRAMS clean-generic \
- clean-libLTLIBRARIES clean-libtool mostlyclean-am
+ clean-libLTLIBRARIES clean-libtool clean-noinstLIBRARIES \
+ mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf admserv/cgi-src40/$(DEPDIR) admserv/newinst/src/$(DEPDIR) lib/base/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR)
+ -rm -rf admserv/cgi-ds/$(DEPDIR) admserv/cgi-src40/$(DEPDIR) admserv/newinst/src/$(DEPDIR) lib/base/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libdsa/$(DEPDIR) lib/libsi18n/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags
@@ -1821,7 +2779,7 @@
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
-install-exec-am: install-libLTLIBRARIES
+install-exec-am: install-binSCRIPTS install-libLTLIBRARIES
install-info: install-info-recursive
@@ -1832,7 +2790,7 @@
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf admserv/cgi-src40/$(DEPDIR) admserv/newinst/src/$(DEPDIR) lib/base/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libsi18n/$(DEPDIR)
+ -rm -rf admserv/cgi-ds/$(DEPDIR) admserv/cgi-src40/$(DEPDIR) admserv/newinst/src/$(DEPDIR) lib/base/$(DEPDIR) lib/libadmin/$(DEPDIR) lib/libdsa/$(DEPDIR) lib/libsi18n/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -1849,26 +2807,27 @@
ps-am:
-uninstall-am: uninstall-cgibinPROGRAMS uninstall-cgibinSCRIPTS \
- uninstall-cmdbinPROGRAMS uninstall-cmdbinSCRIPTS \
- uninstall-dist_helpDATA uninstall-dist_htmlDATA \
- uninstall-dist_iconDATA uninstall-infDATA uninstall-info-am \
- uninstall-ldifDATA uninstall-libLTLIBRARIES \
- uninstall-nodist_cmdbinSCRIPTS uninstall-nodist_configDATA \
- uninstall-nodist_propertyDATA uninstall-perlSCRIPTS \
- uninstall-propertyDATA
+uninstall-am: uninstall-binSCRIPTS uninstall-cgibinPROGRAMS \
+ uninstall-cgibinSCRIPTS uninstall-cmdbinPROGRAMS \
+ uninstall-cmdbinSCRIPTS uninstall-dist_helpDATA \
+ uninstall-dist_htmlDATA uninstall-dist_iconDATA \
+ uninstall-infDATA uninstall-info-am uninstall-ldifDATA \
+ uninstall-libLTLIBRARIES uninstall-nodist_cmdbinSCRIPTS \
+ uninstall-nodist_configDATA uninstall-nodist_propertyDATA \
+ uninstall-perlSCRIPTS uninstall-propertyDATA
uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
check-am clean clean-cgibinPROGRAMS clean-cmdbinPROGRAMS \
clean-generic clean-libLTLIBRARIES clean-libtool \
- clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \
- dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \
- distclean-compile distclean-generic distclean-hdr \
- distclean-libtool distclean-recursive distclean-tags \
- distcleancheck distdir distuninstallcheck dvi dvi-am html \
- html-am info info-am install install-am install-cgibinPROGRAMS \
+ clean-noinstLIBRARIES clean-recursive ctags ctags-recursive \
+ dist dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ \
+ dist-zip distcheck distclean distclean-compile \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-recursive distclean-tags distcleancheck distdir \
+ distuninstallcheck dvi dvi-am html html-am info info-am \
+ install install-am install-binSCRIPTS install-cgibinPROGRAMS \
install-cgibinSCRIPTS install-cmdbinPROGRAMS \
install-cmdbinSCRIPTS install-data install-data-am \
install-data-hook install-dist_helpDATA install-dist_htmlDATA \
@@ -1883,14 +2842,14 @@
mostlyclean mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
tags tags-recursive uninstall uninstall-am \
- uninstall-cgibinPROGRAMS uninstall-cgibinSCRIPTS \
- uninstall-cmdbinPROGRAMS uninstall-cmdbinSCRIPTS \
- uninstall-dist_helpDATA uninstall-dist_htmlDATA \
- uninstall-dist_iconDATA uninstall-infDATA uninstall-info-am \
- uninstall-ldifDATA uninstall-libLTLIBRARIES \
- uninstall-nodist_cmdbinSCRIPTS uninstall-nodist_configDATA \
- uninstall-nodist_propertyDATA uninstall-perlSCRIPTS \
- uninstall-propertyDATA
+ uninstall-binSCRIPTS uninstall-cgibinPROGRAMS \
+ uninstall-cgibinSCRIPTS uninstall-cmdbinPROGRAMS \
+ uninstall-cmdbinSCRIPTS uninstall-dist_helpDATA \
+ uninstall-dist_htmlDATA uninstall-dist_iconDATA \
+ uninstall-infDATA uninstall-info-am uninstall-ldifDATA \
+ uninstall-libLTLIBRARIES uninstall-nodist_cmdbinSCRIPTS \
+ uninstall-nodist_configDATA uninstall-nodist_propertyDATA \
+ uninstall-perlSCRIPTS uninstall-propertyDATA
define NL
\\n
Index: aclocal.m4
===================================================================
RCS file: /cvs/dirsec/adminserver/aclocal.m4,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- aclocal.m4 8 Jun 2007 22:49:18 -0000 1.5
+++ aclocal.m4 13 Jun 2007 17:48:34 -0000 1.6
@@ -1578,27 +1578,10 @@
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -4305,9 +4288,6 @@
# Is the compiler the GNU C compiler?
with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -4441,11 +4421,11 @@
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -4457,7 +4437,7 @@
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -4537,7 +4517,7 @@
link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -6373,7 +6353,6 @@
done
done
done
-IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -6406,7 +6385,6 @@
done
])
SED=$lt_cv_path_SED
-AC_SUBST([SED])
AC_MSG_RESULT([$SED])
])
Index: configure
===================================================================
RCS file: /cvs/dirsec/adminserver/configure,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- configure 8 Jun 2007 22:49:18 -0000 1.6
+++ configure 13 Jun 2007 17:48:34 -0000 1.7
@@ -468,7 +468,7 @@
ac_default_prefix=/opt/$PACKAGE_BASE_NAME
ac_subdirs_all="$ac_subdirs_all mod_admserv"
ac_subdirs_all="$ac_subdirs_all mod_restartd"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE SED EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CP!
P CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS HTTPD APXS PKG_CONFIG ICU_CONFIG nsspcache instconfigdir PACKAGE_BASE_NAME nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir adminutil_inc adminutil_lib adminutil_libdir adminutil_ver setuputil_lib setuputil_libdir setuputil_inc setuputil_bin icu_lib icu_libdir icu_inc icu_bin curses_lib instancename cgibindir cmdbindir moddir modnssbindir propertydir htmldir icondir manualdir httpdconf mimemagic httpduser httpdgroup logdir piddir pidfile admservport ldifdir admmoddir nssmoddir infdir perldir brand capbrand vendor WINNT_TRUE WINNT_FALSE APACHE22_TRUE APACHE22_FALSE subdirs MOD_ADMSERV_TRUE MOD_ADMSERV_FALSE MOD_RESTARTD_TRUE MOD_RESTARTD_FALSE LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CX!
XCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS HTTPD APXS PKG_CONFIG ICU_CONFIG nsspcache instconfigdir PACKAGE_BASE_NAME nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir adminutil_inc adminutil_lib adminutil_libdir adminutil_ver setuputil_lib setuputil_libdir setuputil_inc setuputil_bin icu_lib icu_libdir icu_inc icu_bin curses_lib instancename cgibindir cmdbindir moddir modnssbindir propertydir htmldir icondir manualdir httpdconf mimemagic httpduser httpdgroup logdir piddir pidfile admservport ldifdir admmoddir nssmoddir infdir perldir brand capbrand vendor WINNT_TRUE WINNT_FALSE APACHE22_TRUE APACHE22_FALSE subdirs MOD_ADMSERV_TRUE MOD_ADMSERV_FALSE MOD_RESTARTD_TRUE MOD_RESTARTD_FALSE LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -3824,7 +3824,6 @@
done
done
done
-IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -3859,7 +3858,6 @@
fi
SED=$lt_cv_path_SED
-
echo "$as_me:$LINENO: result: $SED" >&5
echo "${ECHO_T}$SED" >&6
@@ -4300,7 +4298,7 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4303 "configure"' > conftest.$ac_ext
+ echo '#line 4301 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5435,7 +5433,7 @@
# Provide some information about the compiler.
-echo "$as_me:5438:" \
+echo "$as_me:5436:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6498,11 +6496,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6501: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6499: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6505: \$? = $ac_status" >&5
+ echo "$as_me:6503: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6766,11 +6764,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6769: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6767: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6773: \$? = $ac_status" >&5
+ echo "$as_me:6771: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6870,11 +6868,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6873: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6871: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6877: \$? = $ac_status" >&5
+ echo "$as_me:6875: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8335,31 +8333,10 @@
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 8342 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -9236,7 +9213,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9239 "configure"
+#line 9216 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9336,7 +9313,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9339 "configure"
+#line 9316 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9667,9 +9644,6 @@
# Is the compiler the GNU C compiler?
with_gcc=$GCC
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -9803,11 +9777,11 @@
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -9819,7 +9793,7 @@
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -9899,7 +9873,7 @@
link_all_deplibs=$link_all_deplibs
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -11679,11 +11653,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11682: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11656: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11686: \$? = $ac_status" >&5
+ echo "$as_me:11660: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -11783,11 +11757,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11786: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11760: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11790: \$? = $ac_status" >&5
+ echo "$as_me:11764: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12315,31 +12289,10 @@
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 12322 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -12723,9 +12676,6 @@
# Is the compiler the GNU C compiler?
with_gcc=$GCC_CXX
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -12859,11 +12809,11 @@
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_CXX
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_CXX
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -12875,7 +12825,7 @@
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -12955,7 +12905,7 @@
link_all_deplibs=$link_all_deplibs_CXX
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -13377,11 +13327,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13380: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13330: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13384: \$? = $ac_status" >&5
+ echo "$as_me:13334: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13481,11 +13431,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13484: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13434: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13488: \$? = $ac_status" >&5
+ echo "$as_me:13438: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14926,31 +14876,10 @@
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 14933 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -15334,9 +15263,6 @@
# Is the compiler the GNU C compiler?
with_gcc=$GCC_F77
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -15470,11 +15396,11 @@
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_F77
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_F77
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -15486,7 +15412,7 @@
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -15566,7 +15492,7 @@
link_all_deplibs=$link_all_deplibs_F77
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -15708,11 +15634,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15711: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15637: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15715: \$? = $ac_status" >&5
+ echo "$as_me:15641: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15976,11 +15902,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15979: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15905: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15983: \$? = $ac_status" >&5
+ echo "$as_me:15909: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16080,11 +16006,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16083: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16009: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16087: \$? = $ac_status" >&5
+ echo "$as_me:16013: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17545,31 +17471,10 @@
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 17552 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -17953,9 +17858,6 @@
# Is the compiler the GNU C compiler?
with_gcc=$GCC_GCJ
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -18089,11 +17991,11 @@
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_GCJ
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_GCJ
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -18105,7 +18007,7 @@
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -18185,7 +18087,7 @@
link_all_deplibs=$link_all_deplibs_GCJ
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -18437,9 +18339,6 @@
# Is the compiler the GNU C compiler?
with_gcc=$GCC_RC
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -18573,11 +18472,11 @@
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_RC
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_RC
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -18589,7 +18488,7 @@
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -18669,7 +18568,7 @@
link_all_deplibs=$link_all_deplibs_RC
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -25594,7 +25493,6 @@
s,@CCDEPMODE@,$CCDEPMODE,;t t
s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@SED@,$SED,;t t
s,@EGREP@,$EGREP,;t t
s,@LN_S@,$LN_S,;t t
s,@ECHO@,$ECHO,;t t
Index: ltmain.sh
===================================================================
RCS file: /cvs/dirsec/adminserver/ltmain.sh,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ltmain.sh 11 May 2007 19:44:04 -0000 1.2
+++ ltmain.sh 13 Jun 2007 17:48:34 -0000 1.3
@@ -46,16 +46,10 @@
VERSION=1.5.22
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes.
+if test -n "${ZSH_VERSION+set}" ; then
setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
fi
# Check that we have a working $echo.
@@ -111,14 +105,12 @@
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
# We save the old values to restore during execute mode.
-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- fi"
-done
+if test "${LC_ALL+set}" = set; then
+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+fi
# Make sure IFS has a sensible default
lt_nl='
@@ -144,8 +136,6 @@
preserve_args=
lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
#####################################
# Shell function definitions:
@@ -337,17 +327,7 @@
*) my_xabs=`pwd`"/$my_xlib" ;;
esac
my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- extracted_serial=`expr $extracted_serial + 1`
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
+ my_xdir="$my_gentop/$my_xlib"
$show "${rm}r $my_xdir"
$run ${rm}r "$my_xdir"
@@ -778,7 +758,6 @@
*.f90) xform=f90 ;;
*.for) xform=for ;;
*.java) xform=java ;;
- *.obj) xform=obj ;;
esac
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
@@ -1159,9 +1138,8 @@
for arg
do
case $arg in
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
+ -all-static | -static)
+ if test "X$arg" = "X-all-static"; then
if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
fi
@@ -1169,20 +1147,12 @@
dlopen_self=$dlopen_self_static
fi
prefer_static_libs=yes
- ;;
- -static)
+ else
if test -z "$pic_flag" && test -n "$link_static_flag"; then
dlopen_self=$dlopen_self_static
fi
prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
+ fi
build_libtool_libs=no
build_old_libs=yes
break
@@ -1742,7 +1712,7 @@
continue
;;
- -static | -static-libtool-libs)
+ -static)
# The effects of -static are defined in a previous loop.
# We used to do the same as -all-static on platforms that
# didn't have a PIC flag, but the assumption that the effects
@@ -2520,9 +2490,7 @@
if test "$linkmode,$pass" = "prog,link"; then
if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
# We need to hardcode the library path
if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
# Make sure the rpath contains only unique directories.
@@ -3218,7 +3186,7 @@
# which has an extra 1 added just for fun
#
case $version_type in
- darwin|linux|osf|windows|none)
+ darwin|linux|osf|windows)
current=`expr $number_major + $number_minor`
age="$number_minor"
revision="$number_revision"
@@ -3442,11 +3410,11 @@
fi
# Eliminate all temporary directories.
-# for path in $notinst_path; do
-# lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
-# deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
-# dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
-# done
+ for path in $notinst_path; do
+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
+ deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
+ done
if test -n "$xrpath"; then
# If the user specified any rpath flags, then add them.
@@ -3547,12 +3515,13 @@
int main() { return 0; }
EOF
$rm conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
+ if test "$?" -eq 0 ; then
ldd_output=`ldd conftest`
for i in $deplibs; do
name=`expr $i : '-l\(.*\)'`
# If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
+ if test "$name" != "" && test "$name" -ne "0"; then
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in
*" $i "*)
@@ -3591,7 +3560,9 @@
# If $name is empty we are operating on a -L argument.
if test "$name" != "" && test "$name" != "0"; then
$rm conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ $LTCC $LTCFLAGS -o conftest conftest.c $i
+ # Did it work?
+ if test "$?" -eq 0 ; then
ldd_output=`ldd conftest`
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in
@@ -3623,7 +3594,7 @@
droppeddeps=yes
$echo
$echo "*** Warning! Library $i is needed by this library but I was not able to"
- $echo "*** make it link in! You will probably need to install it or some"
+ $echo "*** make it link in! You will probably need to install it or some"
$echo "*** library that it depends on before this library will be fully"
$echo "*** functional. Installing it before continuing would be even better."
fi
@@ -4268,14 +4239,12 @@
reload_conv_objs=
gentop=
# reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
+ # -Wl from whole_archive_flag_spec
wl=
if test -n "$convenience"; then
if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
else
gentop="$output_objdir/${obj}x"
generated="$generated $gentop"
@@ -4723,16 +4692,16 @@
case $host in
*cygwin* | *mingw* )
if test -f "$output_objdir/${outputname}.def" ; then
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
else
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%"`
fi
;;
* )
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE(a)%$output_objdir/${outputname}S.${objext}%"`
;;
esac
;;
@@ -4747,13 +4716,13 @@
# really was required.
# Nullify the symbol file.
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
fi
if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
# Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
link_command="$compile_command$compile_rpath"
# We have no uninstalled library dependencies, so finalize right now.
@@ -4840,7 +4809,7 @@
if test "$fast_install" != no; then
link_command="$finalize_var$compile_command$finalize_rpath"
if test "$fast_install" = yes; then
- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
else
# fast_install is set to needless
relink_command=
@@ -4877,7 +4846,7 @@
fi
done
relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
fi
# Quote $echo for shipping.
@@ -5284,18 +5253,6 @@
Xsed='${SED} -e 1s/^X//'
sed_quote_subst='$sed_quote_subst'
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
@@ -5438,7 +5395,7 @@
;;
esac
$echo >> $output "\
- \$echo \"\$0: cannot exec \$program \$*\"
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit $EXIT_FAILURE
fi
else
@@ -5624,7 +5581,7 @@
done
# Quote the link command for shipping.
relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
if test "$hardcode_automatic" = yes ; then
relink_command=
fi
@@ -5969,9 +5926,9 @@
if test -n "$inst_prefix_dir"; then
# Stick the inst_prefix_dir data into the link command.
- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
else
- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
fi
$echo "$modename: warning: relinking \`$file'" 1>&2
@@ -6180,7 +6137,7 @@
file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
outputname="$tmpdir/$file"
# Replace the output file specification.
- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
$show "$relink_command"
if $run eval "$relink_command"; then :
@@ -6456,15 +6413,12 @@
fi
# Restore saved environment variables
- for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
# Now prepare to actually exec the command.
exec_cmd="\$cmd$args"
@@ -6821,9 +6775,9 @@
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
+ try to export only the symbols listed in SYMFILE
-export-symbols-regex REGEX
- try to export only the symbols matching REGEX
+ try to export only the symbols matching REGEX
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
-module build a library that can dlopened
@@ -6837,11 +6791,9 @@
-release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
+ -static do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
+ specify library version info [each variable defaults to 0]
All other options (arguments beginning with \`-') are ignored.
16 years, 10 months
[Fedora-directory-commits] adminserver/include/libdsa dsalib.h, NONE, 1.1 dsalib_pw.h, NONE, 1.1 dsalib_schema.h, NONE, 1.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/adminserver/include/libdsa
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11558/include/libdsa
Added Files:
dsalib.h dsalib_pw.h dsalib_schema.h
Log Message:
Resolves: #237356
Summary: Move DS Admin Code into Admin Server (Comment #54 -- adminserver side)
Description: moving DS task CGIs to the adminserver with libdsa.
--- NEW FILE dsalib.h ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifndef __dsalib_h
#define __dsalib_h
#include <stdio.h>
#include <time.h>
#include <stdarg.h>
#ifdef HPUX
#include <limits.h> /* for PATH_MAX */
#endif
/* error types */
#define DS_FILE_ERROR 0
#define DS_MEMORY_ERROR 1
#define DS_SYSTEM_ERROR 2
#define DS_INCORRECT_USAGE 3
#define DS_ELEM_MISSING 4
#define DS_REGISTRY_DATABASE_ERROR 5
#define DS_NETWORK_ERROR 6
#define DS_GENERAL_FAILURE 7
#define DS_WARNING 8
/* The upper bound on error types */
#define DS_MAX_ERROR 9
/* The default error type (in case something goes wrong */
#define DS_DEFAULT_ERROR 3
#ifndef BIG_LINE
#define BIG_LINE 1024
#endif
#ifndef PATH_MAX
#if defined( _WIN32 )
#define PATH_MAX _MAX_PATH
#else
#define PATH_MAX 256
#endif /* _WIN32 */
#endif /* PATH_MAX */
#ifndef HTML_ERRCOLOR
#define HTML_ERRCOLOR "#AA0000"
#endif
#ifndef CONTENT_NAME
#define CONTENT_NAME "content"
#endif
/* config file/path info */
#define DS_CONFIG_DIR "DS_CONFIG_DIR"
#define DS_CONFIG_FILE "dse.ldif"
#define DS_ORIGCONFIG_FILE "dse_original.ldif"
#define DS_CONFIG_LOCKDIR "nsslapd-lockdir:"
#define DS_CONFIG_ERRLOG "nsslapd-errorlog:"
#ifdef XP_UNIX
#define FILE_PATHSEP '/'
#define FILE_PATHSEPP "/"
#define FILE_PARENT "../"
#define WSACleanup()
#elif defined(XP_WIN32)
#define FILE_PATHSEP '/'
#define FILE_PATHSEPP "\\\\"
#define FILE_PARENT "..\\"
#endif /* XP_WIN32 */
#define PATH_SIZE 1024
#define ERR_SIZE 8192
/*
NT doesn't strictly need these, but the libadmin API which is emulated
below uses them.
*/
#define NEWSCRIPT_MODE 0755
#define NEWFILE_MODE 0644
#define NEWDIR_MODE 0755
#if defined( XP_WIN32 )
#define DS_EXPORT_SYMBOL __declspec( dllexport )
#else
#define DS_EXPORT_SYMBOL
#endif
#if defined( XP_WIN32 )
#define ENQUOTE "\""
#else
#define ENQUOTE ""
#endif
#ifndef FILE_SEP
#ifdef XP_WIN32
#define FILE_SEP '\\'
#else
#define FILE_SEP '/'
#endif
#endif
#if defined( XP_WIN32 )
#define PATH_FOR_PLATFORM(_path) ds_unixtodospath(_path)
#else
#define PATH_FOR_PLATFORM(_path)
#endif
#define START_SCRIPT "start-slapd"
#define RESTART_SCRIPT "restart-slapd"
#define STOP_SCRIPT "stop-slapd"
#if defined( XP_WIN32 )
#define SLAPD_NAME "slapd"
#else
#define SLAPD_NAME "ns-slapd"
#endif
#define MOCHA_NAME "JavaScript"
/*
* Return values from ds_get_updown_status()
*/
#define DS_SERVER_UP 1
#define DS_SERVER_DOWN 0
#define DS_SERVER_UNKNOWN -1
/*
* Return values from ds_bring_up_server()
*/
#define DS_SERVER_ALREADY_UP -2
#define DS_SERVER_ALREADY_DOWN -3
#define DS_SERVER_PORT_IN_USE -4
#define DS_SERVER_MAX_SEMAPHORES -5
#define DS_SERVER_CORRUPTED_DB -6
#define DS_SERVER_NO_RESOURCES -7
#define DS_SERVER_COULD_NOT_START -8
/*
* Other return values
*/
#define DS_UNKNOWN_ERROR -1
#define DS_NO_SERVER_ROOT -10
#define DS_CANNOT_EXEC -11
#define DS_CANNOT_OPEN_STAT_FILE -12
#define DS_NULL_PARAMETER -13
#define DS_SERVER_MUST_BE_DOWN -14
#define DS_CANNOT_OPEN_BACKUP_FILE -15
#define DS_NOT_A_DIRECTORY -16
#define DS_CANNOT_CREATE_DIRECTORY -17
#define DS_CANNOT_OPEN_LDIF_FILE -18
#define DS_IS_A_DIRECTORY -19
#define DS_CANNOT_CREATE_FILE -20
#define DS_UNDEFINED_VARIABLE -21
#define DS_NO_SUCH_FILE -22
#define DS_CANNOT_DELETE_FILE -23
#define DS_UNKNOWN_SNMP_COMMAND -24
#define DS_NON_NUMERIC_VALUE -25
#define DS_NO_LOGFILE_NAME -26
#define DS_CANNOT_OPEN_LOG_FILE -27
#define DS_HAS_TOBE_READONLY_MODE -28
#define DS_INVALID_LDIF_FILE -29
/*
* Types of config files.
*/
#define DS_REAL_CONFIG 1
#define DS_TMP_CONFIG 2
/*
* Maximum numeric value we will accept in admin interface
* We may at some point need per-option bounds, but for now,
* there's just one global maximum.
*/
#define DS_MAX_NUMERIC_VALUE 4294967295 /* 2^32 - 1 */
/* Use our own macro for rpt_err, so we can put our own error code in
NMC_STATUS */
#undef rpt_err
#define rpt_err(CODE, STR1, STR2, STR3) \
fprintf( stdout, "NMC_ErrInfo: %s\n", (STR1) ); \
fprintf( stdout, "NMC_STATUS: %d\n", CODE )
/*
* Flags for ds_display_config()
*/
#define DS_DISP_HRB 1 /* horizontal line to begin with */
#define DS_DISP_HRE 2 /* horizontal line to end with */
#define DS_DISP_TB 4 /* table begin */
#define DS_DISP_TE 8 /* table end */
#define DS_DISP_EOL 16 /* End Of Line */
#define DS_DISP_NOMT 32 /* display only non empty */
#define DS_DISP_NOIN 64 /* display with no input field */
#define DS_DISP_HELP 128 /* display with a help button */
#define DS_DISP_PLAIN 256 /* No table, no nothin */
#define DS_SIMPLE (DS_DISP_EOL | DS_DISP_NOIN | DS_DISP_HELP)
/*
* dci_type for ds_cfg_info
*/
#define DS_ATTR_STRING 1
#define DS_ATTR_NUMBER 2
#define DS_ATTR_ONOFF 3
#define DS_ATTR_LIMIT 4 /* a number where -1 is displayed as blank */
struct ds_cfg_info {
char *dci_varname;
char *dci_display;
int dci_type;
char *dci_help;
};
extern struct ds_cfg_info ds_cfg_info[];
#define LDBM_DATA_SIZE 5
/*ldbm specific backend information*/
struct ldbm_data {
char *tv[LDBM_DATA_SIZE][2]; /*type and value*/
};
/*
* varname for ds_showparam()
* NOTE: these must be kept in synch with the ds_cfg_info array defined
* in ../lib/dsalib_conf.c
*/
#define DS_LOGLEVEL 0
#define DS_REFERRAL 1
#define DS_AUDITFILE 2
#define DS_LOCALHOST 3
#define DS_PORT 4
#define DS_SECURITY 5
#define DS_SECURE_PORT 6
#define DS_SSL3CIPHERS 7
#define DS_PASSWDHASH 8
#define DS_ACCESSLOG 9
#define DS_ERRORLOG 10
#define DS_ROOTDN 11
#define DS_ROOTPW 12
#define DS_SUFFIX 13
#define DS_LOCALUSER 14
#define DS_CFG_MAX 15 /* MUST be one greater than the last option */
/* These control how long we wait for the server to start up or shutdown */
#define SERVER_START_TIMEOUT 600 /* seconds */
#define SERVER_STOP_TIMEOUT SERVER_START_TIMEOUT /* same as start timeout */
typedef int (*DS_RM_RF_ERR_FUNC)(const char *path, const char *op, void *arg);
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
extern DS_EXPORT_SYMBOL char *ds_get_server_root();
extern DS_EXPORT_SYMBOL char *ds_get_install_root();
extern DS_EXPORT_SYMBOL char *ds_get_admserv_based_root();
extern DS_EXPORT_SYMBOL void ds_log_debug_message(char *msg);
extern DS_EXPORT_SYMBOL void ds_log_env(char **envp);
extern DS_EXPORT_SYMBOL int ds_get_updown_status();
extern DS_EXPORT_SYMBOL void ds_print_startstop(int stop);
extern DS_EXPORT_SYMBOL int ds_bring_up_server_install(int verbose,
char *root, char *errorlog);
extern DS_EXPORT_SYMBOL int ds_bring_up_server(int verbose);
extern DS_EXPORT_SYMBOL char *ds_get_server_name();
extern DS_EXPORT_SYMBOL void ds_send_error(char *errstr, int print_errno);
extern DS_EXPORT_SYMBOL void ds_send_status(char *str);
extern DS_EXPORT_SYMBOL char *ds_get_cgi_var(char *cgi_var_name);
extern DS_EXPORT_SYMBOL char *ds_get_cgi_var_simple(int index);
extern DS_EXPORT_SYMBOL char *ds_get_cgi_multiple(char *cgi_var_name);
extern DS_EXPORT_SYMBOL char *ds_get_errors_name();
extern DS_EXPORT_SYMBOL char *ds_get_access_name();
extern DS_EXPORT_SYMBOL char *ds_get_audit_name();
extern DS_EXPORT_SYMBOL char *ds_get_logfile_name(int config_type);
extern DS_EXPORT_SYMBOL int ds_bring_down_server();
extern DS_EXPORT_SYMBOL void ds_print_server_status(int isrunning);
extern DS_EXPORT_SYMBOL int ds_get_file_size(char *fileName);
extern DS_EXPORT_SYMBOL void ds_display_tail(char *fileName, int timeOut,
int startSeek, char *doneMsg, char *lastLine);
extern DS_EXPORT_SYMBOL int ds_ldif2db_preserve(char *file);
extern DS_EXPORT_SYMBOL int ds_ldif2db(char *file);
extern DS_EXPORT_SYMBOL int ds_ldif2db_backend_subtree(char *file, char *backend, char *subtree);
extern DS_EXPORT_SYMBOL int ds_db2ldif(char *file);
extern DS_EXPORT_SYMBOL int ds_vlvindex(char **backendList, char **attrList);
extern DS_EXPORT_SYMBOL int ds_addindex(char **attrList, char *backendName);
extern DS_EXPORT_SYMBOL int ds_db2ldif_subtree(char *file, char *subtree);
extern DS_EXPORT_SYMBOL char **ds_get_bak_dirs();
extern DS_EXPORT_SYMBOL int ds_db2bak(char *file);
extern DS_EXPORT_SYMBOL int ds_bak2db(char *file);
extern DS_EXPORT_SYMBOL int ds_get_monitor(int frontend, char *port);
extern DS_EXPORT_SYMBOL int ds_get_bemonitor(char *bemdn, char *port);
extern DS_EXPORT_SYMBOL int ds_client_access(char *port, char *dn);
extern DS_EXPORT_SYMBOL char **ds_get_config(int type);
extern DS_EXPORT_SYMBOL char *ds_get_config_dir();
extern DS_EXPORT_SYMBOL void ds_set_config_dir(char *config_dir);
extern DS_EXPORT_SYMBOL char *ds_get_run_dir();
extern DS_EXPORT_SYMBOL void ds_set_run_dir(char *run_dir);
extern DS_EXPORT_SYMBOL char *ds_get_bak_dir();
extern DS_EXPORT_SYMBOL void ds_set_bak_dir(char *bak_dir);
extern DS_EXPORT_SYMBOL char *ds_get_pwenc(char *passwd_hash, char *password);
extern DS_EXPORT_SYMBOL int ds_check_config(int type);
extern DS_EXPORT_SYMBOL int ds_check_pw(char *pwhash, char *pwclear);
extern DS_EXPORT_SYMBOL int ds_set_config(char *change_file_name);
extern DS_EXPORT_SYMBOL char **ds_get_conf_from_file(FILE *conf);
extern DS_EXPORT_SYMBOL void ds_display_config(char **ds_config);
extern DS_EXPORT_SYMBOL char *ds_get_var_name(int varnum);
extern DS_EXPORT_SYMBOL int ds_showparam(char **ds_config, int varname, int phase,
int occurance, char *dispname, int size, int maxlength, unsigned flags,
char *url);
extern DS_EXPORT_SYMBOL void ds_show_pwmaxage(char *value);
extern DS_EXPORT_SYMBOL void ds_show_pwhash(char *value);
extern DS_EXPORT_SYMBOL char *ds_get_value(char **ds_config, char *parm, int phase, int occurance);
extern DS_EXPORT_SYMBOL void ds_apply_cfg_changes(int param_list[], int changed);
extern DS_EXPORT_SYMBOL int ds_commit_cfg_changes();
extern DS_EXPORT_SYMBOL int ds_config_updated();
extern DS_EXPORT_SYMBOL void ds_display_header(char *font_size, char *header);
extern DS_EXPORT_SYMBOL void ds_display_message(char *font_size, char *header);
extern DS_EXPORT_SYMBOL void ds_print_file_form(char *action, char *fileptr, char *full_fileptr);
extern DS_EXPORT_SYMBOL char *ds_get_file_meaning(char *file);
extern DS_EXPORT_SYMBOL void ds_print_file_name(char *fileptr);
extern DS_EXPORT_SYMBOL int ds_file_exists(char *filename);
extern DS_EXPORT_SYMBOL int ds_cp_file(char *sfile, char *dfile, int mode);
extern DS_EXPORT_SYMBOL time_t ds_get_mtime(char *filename);
extern DS_EXPORT_SYMBOL char *ds_get_config_value( int option );
extern DS_EXPORT_SYMBOL char **ds_get_file_list( char *dir );
extern DS_EXPORT_SYMBOL char *ds_get_tmp_dir();
extern DS_EXPORT_SYMBOL void ds_unixtodospath(char *szText);
extern DS_EXPORT_SYMBOL void ds_timetofname(char *szText);
extern DS_EXPORT_SYMBOL void ds_dostounixpath(char *szText);
extern DS_EXPORT_SYMBOL int ds_saferename(char *szSrc, char *szTarget);
extern DS_EXPORT_SYMBOL char *get_specific_help_button(char *help_link,
char *dispname, char *helpinfo);
/* Change the DN to a canonical format (in place); return DN. */
extern DS_EXPORT_SYMBOL char* dn_normalize (char* DN);
/* Change the DN to a canonical format (in place) and convert to v3; return DN. */
extern DS_EXPORT_SYMBOL char* dn_normalize_convert (char* DN);
/* if dn contains an unescaped quote return true */
extern DS_EXPORT_SYMBOL int ds_dn_uses_LDAPv2_quoting(const char *dn);
/* Return a copy of the DN, but with optional whitespace inserted. */
extern DS_EXPORT_SYMBOL char* ds_dn_expand (char* DN);
/* Return the value if it can be stored 'as is' in a config file.
If it requires enquoting, allocate and return its enquoted form.
The caller should free() the returned pointer iff it's != value.
On Windows, we don't want to double up on "\" characters in filespecs,
so we need to pass in the value type */
extern DS_EXPORT_SYMBOL char* ds_enquote_config_value (int paramnum, char* value);
/*
* Bring up a javascript alert.
*/
extern DS_EXPORT_SYMBOL void ds_alert_user(char *header, char *message);
/* Construct and return the DN that corresponds to the give DNS name.
The caller should free() the returned pointer. */
extern DS_EXPORT_SYMBOL char* ds_DNS_to_DN (char* DNS);
/* Construct and return the DN of the LDAP server's own entry.
The caller must NOT free() the returned pointer. */
extern DS_EXPORT_SYMBOL char* ds_get_config_DN (char** ds_config);
/* Encode characters, as described in RFC 1738 section 2.2,
if they're 'unsafe' (as defined in RFC 1738), or '?' or
<special> (as defined in RFC 1779).
The caller should free() the returned pointer. */
extern DS_EXPORT_SYMBOL char* ds_URL_encode (const char*);
/* Decode characters, as described in RFC 1738 section 2.2.
The caller should free() the returned pointer. */
extern DS_EXPORT_SYMBOL char* ds_URL_decode (const char*);
/* Encode all characters, even if 'safe' */
extern DS_EXPORT_SYMBOL char* ds_encode_all (const char*);
/* Change the effective UID and GID of this process to
those associated with the given localuser (if any). */
extern DS_EXPORT_SYMBOL char* ds_become_localuser_name (char* localuser);
/* Change the effective UID and GID of this process to
those associated with ds_config's localuser (if any). */
extern DS_EXPORT_SYMBOL char* ds_become_localuser (char** ds_config);
/* Change the effective UID and GID of this process back to
what they were before calling ds_become_localuser(). */
extern DS_EXPORT_SYMBOL char* ds_become_original();
extern DS_EXPORT_SYMBOL char* ds_makeshort(char *filepath);
extern DS_EXPORT_SYMBOL int ds_search_file(char *filename, char *searchstring, char **returnstring);
/* Display an error to the user and exit from a CGI */
extern DS_EXPORT_SYMBOL void ds_report_error(int type, char *errmsg, char *details);
/* Display a warning to the user */
extern DS_EXPORT_SYMBOL void ds_report_warning(int type, char *errmsg, char *details);
/* These functions are used by the program to alter the output behaviour
if not executing in a CGI context */
extern DS_EXPORT_SYMBOL int ds_get_formatted_output(void);
extern DS_EXPORT_SYMBOL void ds_set_formatted_output(int val);
/* show a message to be parsed by the non-HTML front end */
extern DS_EXPORT_SYMBOL void ds_show_message(const char *message);
/* show a key/value pair to be parsed by the non-HTML front end */
extern DS_EXPORT_SYMBOL void ds_show_key_value(char *key, char *value);
extern DS_EXPORT_SYMBOL void ds_submit(char *helptarget) ;
extern DS_EXPORT_SYMBOL char *ds_get_helpbutton(char *topic);
extern DS_EXPORT_SYMBOL void alter_startup_line(char *startup_line);
extern DS_EXPORT_SYMBOL int ds_dir_exists(char *fn);
extern DS_EXPORT_SYMBOL int ds_mkdir(char *dir, int mode);
extern DS_EXPORT_SYMBOL char *ds_mkdir_p(char *dir, int mode);
extern DS_EXPORT_SYMBOL char *ds_salted_sha1_pw_enc (char* pwd);
extern DS_EXPORT_SYMBOL char * ds_escape_for_shell( char *s );
extern DS_EXPORT_SYMBOL char **ds_string_to_vec(char *s);
extern DS_EXPORT_SYMBOL char *ds_system_errmsg(void);
extern DS_EXPORT_SYMBOL int ds_exec_and_report(char *cmd);
/* remove a directory hierarchy - if the error function is given, it will be called upon
error (e.g. directory not readable, cannot remove file, etc.) - if the callback function
returns 0, this means to abort the removal, otherwise, continue
*/
extern DS_EXPORT_SYMBOL int ds_rm_rf(const char *dir, DS_RM_RF_ERR_FUNC ds_rm_rf_err_func, void *arg);
/*
remove a registry key and report an error message if unsuccessful
*/
extern DS_EXPORT_SYMBOL int ds_remove_reg_key(void *base, const char *format, ...);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __dsalib_h */
--- NEW FILE dsalib_pw.h ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifndef __dsalib_pw_h
#define __dsalib_pw_h
extern DS_EXPORT_SYMBOL void dsparm_help_button(char *var_name, char *dispname,
char *helpinfo);
extern DS_EXPORT_SYMBOL LDAP* bind_as_root (char** cfg, char* rootdn,
char* rootpw);
extern DS_EXPORT_SYMBOL void get_pw_policy(char*** pValue, char** cfg);
extern DS_EXPORT_SYMBOL void ds_showpw( char** cfg);
#endif /* __dsalib_pw_h */
--- NEW FILE dsalib_schema.h ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Routines to parse schema LDIF
*
* -atom
*
*/
#ifndef __DSALIB_SCHEMA_H
#define __DSALIB_SCHEMA_H__
/************************************************************************
BNF for attributes and objectclasses:
AttributeTypeDescription = "(" whsp
numericoid whsp ; AttributeType identifier
[ "NAME" qdescrs ] ; name used in AttributeType
[ "DESC" qdstring ] ; description
[ "OBSOLETE" whsp ]
[ "SUP" woid ] ; derived from this other
; AttributeType
[ "EQUALITY" woid ; Matching Rule name
[ "ORDERING" woid ; Matching Rule name
[ "SUBSTR" woid ] ; Matching Rule name
[ "SYNTAX" whsp noidlen whsp ] ; see section 4.3
[ "SINGLE-VALUE" whsp ] ; default multi-valued
[ "COLLECTIVE" whsp ] ; default not collective
[ "NO-USER-MODIFICATION" whsp ]; default user modifiable
[ "USAGE" whsp AttributeUsage ]; default user applications
whsp ")"
ObjectClassDescription = "(" whsp
numericoid whsp ; ObjectClass identifier
[ "NAME" qdescrs ]
[ "DESC" qdstring ]
[ "OBSOLETE" whsp ]
[ "SUP" oids ] ; Superior ObjectClasses
[ ( "ABSTRACT" / "STRUCTURAL" / "AUXILIARY" ) whsp ]
; default structural
[ "MUST" oids ] ; AttributeTypes
[ "MAY" oids ] ; AttributeTypes
whsp ")"
************************************************************************/
/*
* ds_check_valid_oid: check to see if an oid is valid.
* Oids should only contain digits and dots.
*
* returns 1 if valid, 0 if not
*/
DS_EXPORT_SYMBOL int ds_check_valid_oid (char *oid);
/*
* ds_check_valid_name: check to see if an attribute name or an objectclass
* name is valid. A valid name contains only digits, letters, or hyphens
*
* returns 1 if valid, 0 if not
*
*/
DS_EXPORT_SYMBOL int ds_check_valid_name (char *name);
/*
* ds_get_oc_desc:
*
* Input : pointer to string containing an ObjectClassDescription
* Returns : pointer to string containing objectclass DESC
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char * ds_get_oc_desc (char *oc);
/*
* ds_get_oc_name:
*
* Input : pointer to string containing an ObjectClassDescription
* Returns: pointer to string containing objectclass name.
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char *ds_get_oc_name (char *o);
/*
* ds_get_attr_name:
*
* Input : pointer to string containing an AttributeTypeDescription
* Returns: pointer to string containing an attribute name.
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char *ds_get_attr_name (char *a);
/*
* ds_get_oc_superior:
*
* Input : pointer to string containing an ObjectClassDescription
* Returns: pointer to string containing the objectclass's SUP (superior/parent)
* objectclass
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char *ds_get_oc_superior (char *o);
/*
* ds_get_attr_desc:
*
* Input : Pointer to string containing an AttributeTypeDescription
* Returns: Pointer to string containing the attribute's description
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char *ds_get_attr_desc (char *a);
/*
* ds_get_attr_syntax:
*
* Input: Pointer to string containing an AttributeTypeDescription
* Returns: Pointer to string containing the attribute's syntax
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char *ds_get_attr_syntax (char *a);
/*
* ds_get_attr_oid:
*
* Input : Pointer to string containing an AttributeTypeDescription
* Returns: Pointer to string containing an attribute's oid
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char *ds_get_attr_oid (char *a);
/*
* ds_get_attr_name:
*
* Input : Pointer to string containing an AttributeTypeDescription
* Returns: Pointer to string containing the attribute's name
*
* The caller must free the return value
*
*/
DS_EXPORT_SYMBOL char *ds_get_attr_name (char *a);
/*
* syntax_oid_to_english: convert an attribute syntax oid to something more
* human readable
*
* Input : string containing numeric OID for a attribute syntax
* Returns: Human readable string
*/
DS_EXPORT_SYMBOL char *syntax_oid_to_english (char *oid);
/* StripSpaces: Remove all leading and trailing spaces from a string */
DS_EXPORT_SYMBOL char *StripSpaces (char **s);
/* ds_print_required_attrs:
*
* input: pointer to string containing an ObjectClassDescription
*
* prints JavaScript array containing the required attributes of an objectclass
* The array name is oc_<objectclass name>_requires
*/
DS_EXPORT_SYMBOL void ds_print_required_attrs (char *o);
/* ds_print_allowed_attrs:
*
* input: pointer to string containing an ObjectClassDescription
*
* prints JavaScript array containing the allowed attributes of an objectclass
* The array name is oc_<objectclass name>_allows
*/
DS_EXPORT_SYMBOL void ds_print_allowed_attrs (char *o);
/* ds_print_oc_oid:
*
* input: pointer to string containing an ObjectClassDescription
*
* prints JavaScript string containing an objectclass oid
* The variable name is oc_<objectclass name>_oid
*/
DS_EXPORT_SYMBOL void ds_print_oc_oid (char *o);
/* ds_print_oc_superior:
*
* input: pointer to string containing an ObjectClassDescription
*
* prints JavaScript string containing an objectclass superior
* The variable name is oc_<objectclass name>_superior
*/
DS_EXPORT_SYMBOL void ds_print_oc_superior (char *o);
/* underscore2hyphen:
* transform underscores to hyphens in a string
*/
DS_EXPORT_SYMBOL char *underscore2hyphen (char *src);
/* hyphen2underscore:
* transform hyphens to underscores in a string
*/
DS_EXPORT_SYMBOL char *hyphen2underscore (char *src);
#endif /* __DSALIB_SCHEMA_H__ */
16 years, 10 months
[Fedora-directory-commits] adminserver/lib/libdsa dsalib_conf.c, NONE, 1.1 dsalib_confs.c, NONE, 1.1 dsalib_db.c, NONE, 1.1 dsalib_debug.c, NONE, 1.1 dsalib_dn.c, NONE, 1.1 dsalib_filename.c, NONE, 1.1 dsalib_ldif.c, NONE, 1.1 dsalib_location.c, NONE, 1.1 dsalib_pw.c, NONE, 1.1 dsalib_tailf.c, NONE, 1.1 dsalib_updown.c, NONE, 1.1 dsalib_util.c, NONE, 1.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/adminserver/lib/libdsa
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11558/lib/libdsa
Added Files:
dsalib_conf.c dsalib_confs.c dsalib_db.c dsalib_debug.c
dsalib_dn.c dsalib_filename.c dsalib_ldif.c dsalib_location.c
dsalib_pw.c dsalib_tailf.c dsalib_updown.c dsalib_util.c
Log Message:
Resolves: #237356
Summary: Move DS Admin Code into Admin Server (Comment #54 -- adminserver side)
Description: moving DS task CGIs to the adminserver with libdsa.
--- NEW FILE dsalib_conf.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#include <process.h>
#endif
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "dsalib.h"
#include <ctype.h>
#include "nspr.h"
#define CONF_SUFFIX "cn=config"
DS_EXPORT_SYMBOL char *
ds_get_var_name(int varnum)
{
if ( (varnum >= DS_CFG_MAX) || (varnum < 0) )
return(NULL); /* failure */
return(ds_cfg_info[varnum].dci_varname);
}
/*
* Get config info.
*/
DS_EXPORT_SYMBOL char **
ds_get_config(int type)
{
char conffile[PATH_MAX];
char *configdir;
FILE *sf = NULL;
char **conf_list = NULL;
if ( (type != DS_REAL_CONFIG) && (type != DS_TMP_CONFIG) ) {
ds_send_error("Invalid config file type.", 0);
return(NULL);
}
if ( (configdir = ds_get_config_dir()) == NULL ) {
ds_send_error("Cannot find configuration directory.", 0);
return(NULL);
}
PR_snprintf(conffile, PATH_MAX, "%s/%s", configdir, DS_CONFIG_FILE);
if ( !(sf = fopen(conffile, "r")) ) {
ds_send_error("could not read config file.", 1);
return(NULL);
}
conf_list = ds_get_conf_from_file(sf);
fclose(sf);
if (!conf_list) {
ds_send_error("failed to read the config file successfully.", 0);
return(NULL);
}
return(conf_list);
}
/*
* NOTE: the ordering of the following array elements must be kept in sync
* with the ordering of the #defines in ../include/dsalib.h.
*/
struct ds_cfg_info ds_cfg_info[] = {
{"nsslapd-errorlog-level" },
{"nsslapd-referral" },
{"nsslapd-auditlog" },
{"nsslapd-localhost" },
{"nsslapd-port" },
{"nsslapd-security" },
{"nsslapd-secureport" },
{"nsslapd-ssl3ciphers"},
{"passwordstoragescheme"},
{"nsslapd-accesslog"},
{"nsslapd-errorlog"},
{"nsslapd-rootdn"},
{"nsslapd-rootpwstoragescheme"},
{"nsslapd-suffix"},
{"nsslapd-localuser"},
{0}
};
/*
* Open the config file and look for option "option". Return its
* value, or NULL if the option was not found.
*/
DS_EXPORT_SYMBOL char *
ds_get_config_value( int option )
{
char **all, *value;
int i;
char *attr = ds_get_var_name(option);
if (attr == NULL)
return NULL;
all = ds_get_config( DS_REAL_CONFIG );
if ( all == NULL ) {
return NULL;
}
for ( i = 0; all[ i ] != NULL; i++ ) {
if (( value = strchr( all[ i ], ':' )) != NULL ) {
*value = '\0';
++value;
while (*value && isspace(*value))
++value;
}
if ( !strcasecmp( attr, all[ i ] )) {
return strdup( value );
}
}
return NULL;
}
static size_t
count_quotes (const char* s)
{
size_t count = 0;
const char* t = s;
if (t) while ((t = strpbrk (t, "\"\\")) != NULL) {
++count;
++t;
}
return count;
}
DS_EXPORT_SYMBOL char*
ds_enquote_config_value (int paramnum, char* s)
{
char* result;
char* brkcharset = "\"\\ \t\r\n";
char *encoded_quote = "22"; /* replace quote with \22 */
int encoded_quote_len = strlen(encoded_quote);
char *begin = s;
if (*s && ! strpbrk (s, brkcharset) &&
! (paramnum == DS_AUDITFILE || paramnum == DS_ACCESSLOG ||
#if defined( XP_WIN32 )
paramnum == DS_SUFFIX ||
#endif
paramnum == DS_ERRORLOG)) {
result = s;
} else {
char* t = malloc (strlen (s) + count_quotes (s) + 3);
result = t;
*t++ = '"';
while (*s) {
switch (*s) {
case '"':
/* convert escaped quotes by replacing the quote with
escape code e.g. 22 so that \" is converted to \22 "*/
if ((s > begin) && (*(s - 1) == '\\'))
{
strcpy(t, encoded_quote);
t += encoded_quote_len;
}
else /* unescaped ", just replace with \22 "*/
{
*t++ = '\\';
strcpy(t, encoded_quote);
t += encoded_quote_len;
}
++s;
break;
default:
*t++ = *s++; /* just copy it */
break;
}
}
*t++ = '"';
*t = '\0';
}
return result;
}
DS_EXPORT_SYMBOL char*
ds_DNS_to_DN (char* DNS)
{
static const char* const RDN = "dc=";
char* DN;
char* dot;
size_t components;
if (DNS == NULL || *DNS == '\0') {
return strdup ("");
}
components = 1;
for (dot = strchr (DNS, '.'); dot != NULL; dot = strchr (dot + 1, '.')) {
++components;
}
DN = malloc (strlen (DNS) + (components * strlen(RDN)) + 1);
strcpy (DN, RDN);
for (dot = strchr (DNS, '.'); dot != NULL; dot = strchr (dot + 1, '.')) {
*dot = '\0';
strcat (DN, DNS);
strcat (DN, ",");
strcat (DN, RDN);
DNS = dot + 1;
*dot = '.';
}
strcat (DN, DNS);
dn_normalize (DN);
return DN;
}
--- NEW FILE dsalib_confs.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Some of the simple conf stuff here. Must not call any
* libadmin functions! This is needed by ds_config.c
*/
#if defined( XP_WIN32 )
#include <windows.h>
#endif
#include "dsalib.h"
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ldif.h>
#include <ctype.h>
#include "nspr.h"
#include "plstr.h"
/*
* Read the configuration info into a null-terminated list of strings.
*/
DS_EXPORT_SYMBOL char **
ds_get_conf_from_file(FILE *conf)
{
static char config_entry[] = "dn: cn=config";
static int cfg_ent_len = sizeof(config_entry)-1;
int listsize = 0;
char **conf_list = NULL;
char *entry = 0;
int lineno = 0;
while ((entry = ldif_get_entry(conf, &lineno))) {
char *begin = entry;
if (!PL_strncasecmp(entry, config_entry, cfg_ent_len)) {
char *line = entry;
while ((line = ldif_getline(&entry))) {
char *type, *value;
int vlen = 0;
int rc;
if ( *line == '\n' || *line == '\0' ) {
break;
}
/* this call modifies line */
rc = ldif_parse_line(line, &type, &value, &vlen);
if (rc != 0)
{
ds_send_error("Unknown error processing config file", 0);
free(begin);
return NULL;
}
listsize++;
conf_list = (char **) realloc(conf_list,
((listsize + 1) * sizeof(char *)));
/* this is the format expected by ds_get_config_value */
conf_list[listsize - 1] = PR_smprintf("%s:%s", type, value);
conf_list[listsize] = NULL; /* always null terminated */
}
}
free(begin);
}
return(conf_list);
}
/*
* Returns 1 if parm is in confline else 0
*/
static int
ds_parm_in_line(char *confline, char *parm)
{
int parm_size;
if ( confline == NULL )
return(0);
if ( parm == NULL )
return(0);
parm_size = strlen(parm);
if ( parm_size == (int)NULL )
return(0);
if ( PL_strncasecmp(confline, parm, parm_size) == 0 )
if ( ((int) strlen(confline)) > parm_size )
if ( confline[parm_size] == ':' )
return(1);
return(0);
}
/*
* Gets the string that corresponds to the parameter supplied from the
* list of config lines. Returns a malloc'd string.
*/
DS_EXPORT_SYMBOL char *
ds_get_value(char **ds_config, char *parm, int phase, int occurance)
{
char *line;
int line_num = 0;
int cur_phase = 0;
int cur_occurance = 0;
if ( (parm == NULL) || (ds_config == NULL) )
return(NULL);
if ( (phase < 0) || (occurance < 1) )
return(NULL);
line = ds_config[line_num];
while ( line != NULL ) {
if ( ds_parm_in_line(line, "database") )
cur_phase++;
if ( ds_parm_in_line(line, parm) ) { /* found it */
if ( phase == cur_phase )
if ( ++cur_occurance == occurance ) {
/*
* Use ldif_parse_line() so continuation markers are
* handled correctly, etc.
*/
char *type = NULL, *value = NULL, *tmpvalue = NULL;
int ldif_rc, tmpvlen = 0;
char *tmpline = strdup(line);
if ( NULL == tmpline ) {
ds_send_error(
"ds_get_value() failed: strdup() returned NULL\n",
1 /* print errno */ );
return(NULL);
}
ldif_rc = ldif_parse_line( tmpline, &type, &tmpvalue, &tmpvlen );
if (ldif_rc < 0) {
ds_send_error("Unknown error processing config file", 0);
} else if (ldif_rc == 0) { /* value returned in place */
value = strdup(tmpvalue);
} else { /* malloc'd value */
value = tmpvalue;
}
free(tmpline);
return value;
}
}
line_num++;
line = ds_config[line_num];
}
return(NULL);
}
--- NEW FILE dsalib_db.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#include <process.h>
#include <io.h>
#endif
#include "dsalib.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#if !defined( XP_WIN32 )
#include <dirent.h>
#include <unistd.h>
#else
#define popen _popen
#define pclose _pclose
#endif
#include "nspr.h"
/*
* Get a listing of backup directories
* Return NULL for errors and a NULL list for an empty list.
*/
DS_EXPORT_SYMBOL char **
ds_get_bak_dirs()
{
char format_str[PATH_MAX];
char *root;
int i = 0;
char **bak_dirs = NULL;
char *bakdir = NULL;
if ( (root = ds_get_install_root()) == NULL )
{
ds_send_error("Cannot find server root directory.", 0);
return(bak_dirs);
}
if ( (bakdir = ds_get_bak_dir()) == NULL )
{
ds_send_error("Cannot find backup directory.", 0);
return(bak_dirs);
}
PR_snprintf( format_str, PATH_MAX, "%s", bakdir );
bak_dirs = ds_get_file_list( format_str );
if( bak_dirs )
{
while( bak_dirs[i] != NULL )
{
/* Prepend the filename with the install root */
char filename[PATH_MAX];
PR_snprintf( filename, PATH_MAX, "%s%c%s",
bakdir, FILE_SEP, bak_dirs[i] );
free( bak_dirs[i] );
bak_dirs[i] = strdup( filename );
#if defined( XP_WIN32 )
ds_dostounixpath( bak_dirs[i] );
#endif
i++;
}
}
return(bak_dirs);
}
/*
* Restore a database based on a backup directory name.
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_bak2db(char *file)
{
char startup_line[BIG_LINE];
char statfile[PATH_MAX];
char *tmp_dir;
char *root;
int haderror = 0;
int error = -1;
int status;
FILE *sf = NULL;
struct stat fstats;
if ( file == NULL ) {
return DS_NULL_PARAMETER;
}
status = ds_get_updown_status();
if ( status == DS_SERVER_UP ) {
return DS_SERVER_MUST_BE_DOWN;
}
if ( (root = ds_get_install_root()) == NULL ) {
return DS_NO_SERVER_ROOT;
}
if ( file[strlen(file) - 1] == '\n' ) /* strip out returns */
file[strlen(file) - 1] = '\0';
if( stat( file, &fstats ) == -1 && errno == ENOENT ) {
return DS_CANNOT_OPEN_BACKUP_FILE;
} else if( !(fstats.st_mode & S_IFDIR) ) {
return DS_NOT_A_DIRECTORY;
}
tmp_dir = ds_get_tmp_dir();
PR_snprintf(statfile, PATH_MAX, "%s%cbak2db.%d", tmp_dir, FILE_SEP, (int)getpid());
PR_snprintf(startup_line, BIG_LINE,
"%s%cbak2db "
"%s%s%s > "
"%s%s%s 2>&1",
root, FILE_SEP,
ENQUOTE, file, ENQUOTE,
ENQUOTE, statfile, ENQUOTE );
alter_startup_line(startup_line);
fflush(0);
error = system(startup_line);
fflush(0);
if ( error == -1 ) {
return DS_CANNOT_EXEC;
}
fflush(0);
if( !(sf = fopen(statfile, "r")) ) {
return DS_CANNOT_OPEN_STAT_FILE;
}
while ( fgets(startup_line, BIG_LINE, sf) ) {
if ((strstr(startup_line, "- Restoring file")) ||
(strstr(startup_line, "- Checkpointing"))) {
ds_show_message(startup_line);
} else {
haderror = 1;
ds_send_error(startup_line, 0);
}
}
fclose(sf);
unlink(statfile);
if ( haderror )
return DS_UNKNOWN_ERROR;
return 0;
}
/*
* Create a backup based on a file name.
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_db2bak(char *file)
{
char startup_line[BIG_LINE];
char statfile[PATH_MAX];
char *tmp_dir;
char *root;
int haderror = 0;
int error = -1;
FILE *sf = NULL;
int lite = 0;
#ifdef XP_WIN32
time_t ltime;
#endif
if ( (root = ds_get_install_root()) == NULL ) {
return DS_NO_SERVER_ROOT;
}
if ( (file == NULL) || (strlen(file) == 0) )
file = NULL;
tmp_dir = ds_get_tmp_dir();
PR_snprintf(statfile, PATH_MAX, "%s%cdb2bak.%d", tmp_dir, FILE_SEP, (int)getpid());
#if defined( XP_WIN32 )
if( file == NULL )
{
file = malloc( BIG_LINE );
time( <ime );
PR_snprintf( file, BIG_LINE, "%s", ctime( <ime ) );
ds_timetofname( file );
}
/* Check if the directory exists or can be created */
if ( !ds_file_exists( file ) ) {
char *errmsg = ds_mkdir_p( file, NEWDIR_MODE );
if( errmsg != NULL ) {
/* ds_send_error(errmsg, 10);
*/
return DS_CANNOT_CREATE_DIRECTORY;
}
}
#endif
/* DBDB: note on the following line.
* Originally this had quotes round the directory name.
* I found that this made the script not work becuase
* a path of the form "foo"/bar/"baz" was passed to slapd.
* the c runtime didn't like this. Perhaps there's a simple
* solution, but for now I've modified this line here to
* not quote the directory name. This means that backup
* directories can't have spaces in them.
*/
PR_snprintf(startup_line, sizeof(startup_line),
"%s%cdb2bak "
"%s%s%s > "
"%s%s%s 2>&1",
root, FILE_SEP,
ENQUOTE,
(file == NULL) ? "" : file,
ENQUOTE,
ENQUOTE, statfile, ENQUOTE);
PATH_FOR_PLATFORM( startup_line );
alter_startup_line(startup_line);
fflush(0);
error = system(startup_line);
if ( error == -1 ) {
return DS_CANNOT_EXEC;
}
if( !(sf = fopen(statfile, "r")) ) {
return DS_CANNOT_OPEN_STAT_FILE;
}
while ( fgets(startup_line, BIG_LINE, sf) ) {
if (strstr(startup_line, " - Backing up file") ||
strstr(startup_line, " - Checkpointing database")) {
ds_show_message(startup_line);
} else {
haderror = 1;
if (strstr ( startup_line, "restricted mode")) {
lite = 1;
}
ds_send_error(startup_line, 0);
}
}
fclose(sf);
unlink(statfile);
if ( lite && haderror )
return DS_HAS_TOBE_READONLY_MODE;
if ( haderror )
return DS_UNKNOWN_ERROR;
return 0;
}
static void
process_and_report( char *line, int line_size, FILE *cmd )
{
while(fgets(line, line_size, cmd)) {
/* Strip off line feeds */
int ind = strlen( line ) - 1;
while ( (ind >= 0) &&
((line[ind] == '\n') ||
(line[ind] == '\r')) ) {
line[ind] = 0;
ind--;
}
if ( ind < 1 ) {
continue;
}
ds_send_status(line);
}
}
static int exec_and_report( char *startup_line )
{
FILE *cmd = NULL;
char line[BIG_LINE];
int haderror = 0;
PATH_FOR_PLATFORM( startup_line );
alter_startup_line(startup_line);
/*
fprintf( stdout, "Launching <%s>\n", startup_line );
*/
fflush(0);
cmd = popen(startup_line, "r");
if(!cmd) {
return DS_CANNOT_EXEC;
}
process_and_report( line, sizeof(line), cmd );
pclose(cmd);
/*
** The VLV indexing code prints OK,
** if the index was successfully created.
*/
if (strcmp(line,"OK")==0) {
haderror = 0;
} else {
haderror = DS_UNKNOWN_ERROR;
}
return haderror;
}
/*
* Create a vlv index
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_vlvindex(char **backendList, char **vlvList)
{
char startup_line[BIG_LINE];
char *root;
char *instroot;
char **vlvc = NULL;
root = ds_get_server_root();
instroot = ds_get_install_root();
if ( (root == NULL) || (instroot == NULL) ) {
return DS_NO_SERVER_ROOT;
}
PR_snprintf(startup_line, sizeof(startup_line), "%s/bin/slapd/server/%s db2index "
"-D %s%s/%s "
"-n %s ",
root, SLAPD_NAME,
ENQUOTE, instroot, ENQUOTE,
backendList[0]);
/* Create vlv TAG */
vlvc=vlvList;
while( *vlvc != NULL ) {
PR_snprintf( startup_line, sizeof(startup_line), "%s -T %s%s%s", startup_line,"\"",*vlvc,"\"" );
vlvc++;
}
return exec_and_report( startup_line );
}
/*
* Create one or more indexes
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_addindex(char **attrList, char *backendName)
{
char startup_line[BIG_LINE];
char *root;
char *instroot;
root = ds_get_server_root();
instroot = ds_get_install_root();
if ( (root == NULL) || (instroot == NULL) ) {
return DS_NO_SERVER_ROOT;
}
PR_snprintf(startup_line, sizeof(startup_line), "%s/bin/slapd/server/%s db2index "
"-D %s%s%s "
"-n %s",
root, SLAPD_NAME,
ENQUOTE, instroot, ENQUOTE,
backendName);
while( *attrList != NULL ) {
PR_snprintf( startup_line, sizeof(startup_line), "%s -t %s", startup_line, *attrList );
attrList++;
}
return exec_and_report( startup_line );
}
--- NEW FILE dsalib_debug.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#endif
#include "dsalib.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "nspr.h"
#include "plstr.h"
#if defined( XP_WIN32 )
int ldap_debug = 0;
#endif
DS_EXPORT_SYMBOL void
ds_log_env(char **envp)
{
FILE *file;
char admin_logfile[PATH_MAX], *tmp_dir;
tmp_dir = ds_get_tmp_dir();
PL_strncpyz( admin_logfile, tmp_dir, sizeof(admin_logfile) );
#if defined( XP_WIN32 )
if( tmp_dir )
{
free( tmp_dir );
tmp_dir = NULL;
}
#endif
PL_strcatn( admin_logfile, sizeof(admin_logfile), "/admin.log");
file = fopen(admin_logfile, "a+");
if (file != NULL) {
int i;
for ( i = 0; envp[i] != (char *) 0; i++ ) {
char envstr[200];
PR_snprintf(envstr, sizeof(envstr), "%s\n", envp[i]);
fwrite(envstr, strlen(envstr), 1, file);
}
fclose(file);
}
}
DS_EXPORT_SYMBOL void
ds_log_debug_message(char *msg)
{
FILE *file;
char admin_logfile[PATH_MAX], *tmp_dir;
tmp_dir = ds_get_tmp_dir();
memset( admin_logfile, 0, sizeof( admin_logfile ) );
PL_strncpyz( admin_logfile, tmp_dir, sizeof(admin_logfile) );
#if defined( XP_WIN32 )
if( tmp_dir )
{
free( tmp_dir );
tmp_dir = NULL;
}
#endif
PL_strcatn( admin_logfile, sizeof(admin_logfile), "/admin.log");
file = fopen(admin_logfile, "a+");
if (file != NULL) {
fwrite(msg, strlen(msg), 1, file);
fclose(file);
}
}
--- NEW FILE dsalib_dn.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#else
#include <sys/types.h>
#endif
#include <string.h>
#include "dsalib.h"
#include <stdlib.h>
#define DNSEPARATOR(c) (c == ',' || c == ';')
#define SEPARATOR(c) (c == ',' || c == ';' || c == '+')
#define SPACE(c) (c == ' ' || c == '\n')
#define NEEDSESCAPE(c) (c == '\\' || c == '"')
#define B4TYPE 0
#define INTYPE 1
#define B4EQUAL 2
#define B4VALUE 3
#define INVALUE 4
#define INQUOTEDVALUE 5
#define B4SEPARATOR 6
DS_EXPORT_SYMBOL char*
dn_normalize( char *dn )
{
char *d, *s;
int state, gotesc;
/* Debug( LDAP_DEBUG_TRACE, "=> dn_normalize \"%s\"\n", dn, 0, 0 ); */
gotesc = 0;
state = B4TYPE;
for ( d = s = dn; *s; s++ ) {
switch ( state ) {
case B4TYPE:
if ( ! SPACE( *s ) ) {
state = INTYPE;
*d++ = *s;
}
break;
case INTYPE:
if ( *s == '=' ) {
state = B4VALUE;
*d++ = *s;
} else if ( SPACE( *s ) ) {
state = B4EQUAL;
} else {
*d++ = *s;
}
break;
case B4EQUAL:
if ( *s == '=' ) {
state = B4VALUE;
*d++ = *s;
} else if ( ! SPACE( *s ) ) {
/* not a valid dn - but what can we do here? */
*d++ = *s;
}
break;
case B4VALUE:
if ( *s == '"' ) {
state = INQUOTEDVALUE;
*d++ = *s;
} else if ( ! SPACE( *s ) ) {
state = INVALUE;
*d++ = *s;
}
break;
case INVALUE:
if ( !gotesc && SEPARATOR( *s ) ) {
while ( SPACE( *(d - 1) ) )
d--;
state = B4TYPE;
if ( *s == '+' ) {
*d++ = *s;
} else {
*d++ = ',';
}
} else if ( gotesc && !NEEDSESCAPE( *s ) &&
!SEPARATOR( *s ) ) {
*--d = *s;
d++;
} else {
*d++ = *s;
}
break;
case INQUOTEDVALUE:
if ( !gotesc && *s == '"' ) {
state = B4SEPARATOR;
*d++ = *s;
} else if ( gotesc && !NEEDSESCAPE( *s ) ) {
*--d = *s;
d++;
} else {
*d++ = *s;
}
break;
case B4SEPARATOR:
if ( SEPARATOR( *s ) ) {
state = B4TYPE;
if ( *s == '+' ) {
*d++ = *s;
} else {
*d++ = ',';
}
}
break;
default:
break;
}
if ( *s == '\\' ) {
gotesc = 1;
} else {
gotesc = 0;
}
}
*d = '\0';
/* Debug( LDAP_DEBUG_TRACE, "<= dn_normalize \"%s\"\n", dn, 0, 0 ); */
return( dn );
}
DS_EXPORT_SYMBOL char*
ds_dn_expand (char* dn)
{
char* edn;
size_t i = 0;
char* s;
int state = B4TYPE;
int gotesc = 0;
if (dn == NULL) return NULL;
edn = strdup (dn);
if (edn == NULL) return NULL;
for (s = dn; *s != '\0'; ++s, ++i) {
switch (state) {
case B4TYPE:
if ( ! SPACE (*s)) {
state = INTYPE;
}
break;
case INTYPE:
if (*s == '=') {
state = B4VALUE;
} else if (SPACE (*s)) {
state = B4EQUAL;
}
break;
case B4EQUAL:
if (*s == '=') {
state = B4VALUE;
}
break;
case B4VALUE:
if (*s == '"') {
state = INQUOTEDVALUE;
} else if ( ! SPACE (*s)) {
state = INVALUE;
}
break;
case INQUOTEDVALUE:
if (gotesc) {
if ( ! NEEDSESCAPE (*s)) {
--i;
memmove (edn+i, edn+i+1, strlen (edn+i));
}
} else {
if (*s == '"') {
state = B4SEPARATOR;
}
}
break;
case INVALUE:
if (gotesc) {
if ( ! NEEDSESCAPE (*s) && ! SEPARATOR (*s)) {
--i;
memmove (edn+i, edn+i+1, strlen (edn+i));
}
break;
}
case B4SEPARATOR:
if (SEPARATOR (*s)) {
state = B4TYPE;
if ( ! SPACE (s[1])) {
/* insert a space following edn[i] */
edn = (char*) realloc (edn, strlen (edn)+2);
++i;
memmove (edn+i+1, edn+i, strlen (edn+i)+1);
edn[i] = ' ';
}
}
break;
default:
break;
}
gotesc = (*s == '\\');
}
return edn;
}
int
hexchar2int( char c )
{
if ( '0' <= c && c <= '9' ) {
return( c - '0' );
}
if ( 'a' <= c && c <= 'f' ) {
return( c - 'a' + 10 );
}
if ( 'A' <= c && c <= 'F' ) {
return( c - 'A' + 10 );
}
return( -1 );
}
/*
* substr_dn_normalize - map a DN to a canonical form.
* The DN is read from *dn through *(end-1) and normalized in place.
* The new end is returned; that is, the canonical form is in
* *dn through *(the_return_value-1).
*/
/* The goals of this function are:
* 1. be compatible with previous implementations. Especially, enable
* a server running this code to find database index keys that were
* computed by Directory Server 3.0 with a prior version of this code.
* 2. Normalize in place; that is, avoid allocating memory to contain
* the canonical form.
* 3. eliminate insignificant differences; that is, any two DNs are
* not significantly different if and only if their canonical forms
* are identical (ignoring upper/lower case).
* 4. handle a DN in the syntax defined by RFC 2253.
* 5. handle a DN in the syntax defined by RFC 1779.
*
* Goals 3 through 5 are not entirely achieved by this implementation,
* because it can't be done without violating goal 1. Specifically,
* DNs like cn="a,b" and cn=a\,b are not mapped to the same canonical form,
* although they're not significantly different. Likewise for any pair
* of DNs that differ only in their choice of quoting convention.
* A previous version of this code changed all DNs to the most compact
* quoting convention, but that violated goal 1, since Directory Server
* 3.0 did not.
*
* Also, this implementation handles the \xx convention of RFC 2253 and
* consequently violates RFC 1779, according to which this type of quoting
* would be interpreted as a sequence of 2 numerals (not a single byte).
*/
DS_EXPORT_SYMBOL char *
dn_normalize_convert( char *dn )
{
/* \xx is changed to \c.
\c is changed to c, unless this would change its meaning.
All values that contain 2 or more separators are "enquoted";
all other values are not enquoted.
*/
char *value, *value_separator;
char *d, *s;
char *end;
int gotesc = 0;
int state = B4TYPE;
if (NULL == dn)
return dn;
end = dn + strlen(dn);
for ( d = s = dn; s != end; s++ ) {
switch ( state ) {
case B4TYPE:
if ( ! SPACE( *s ) ) {
state = INTYPE;
*d++ = *s;
}
break;
case INTYPE:
if ( *s == '=' ) {
state = B4VALUE;
*d++ = *s;
} else if ( SPACE( *s ) ) {
state = B4EQUAL;
} else {
*d++ = *s;
}
break;
case B4EQUAL:
if ( *s == '=' ) {
state = B4VALUE;
*d++ = *s;
} else if ( ! SPACE( *s ) ) {
/* not a valid dn - but what can we do here? */
*d++ = *s;
}
break;
case B4VALUE:
if ( *s == '"' || ! SPACE( *s ) ) {
value_separator = NULL;
value = d;
state = ( *s == '"' ) ? INQUOTEDVALUE : INVALUE;
*d++ = *s;
}
break;
case INVALUE:
if ( gotesc ) {
if ( SEPARATOR( *s ) ) {
if ( value_separator ) value_separator = dn;
else value_separator = d;
} else if ( ! NEEDSESCAPE( *s ) ) {
--d; /* eliminate the \ */
}
} else if ( SEPARATOR( *s ) ) {
while ( SPACE( *(d - 1) ) )
d--;
if ( value_separator == dn ) { /* 2 or more separators */
/* convert to quoted value: */
auto char *L = NULL;
auto char *R;
for ( R = value; (R = strchr( R, '\\' )) && (R < d); L = ++R ) {
if ( SEPARATOR( R[1] )) {
if ( L == NULL ) {
auto const size_t len = R - value;
if ( len > 0 ) memmove( value+1, value, len );
*value = '"'; /* opening quote */
value = R + 1;
} else {
auto const size_t len = R - L;
if ( len > 0 ) {
memmove( value, L, len );
value += len;
}
--d;
}
}
}
memmove( value, L, d - L + 1 );
*d++ = '"'; /* closing quote */
}
state = B4TYPE;
*d++ = (*s == '+') ? '+' : ',';
break;
}
*d++ = *s;
break;
case INQUOTEDVALUE:
if ( gotesc ) {
if ( ! NEEDSESCAPE( *s ) ) {
--d; /* eliminate the \ */
}
} else if ( *s == '"' ) {
state = B4SEPARATOR;
if ( value_separator == dn /* 2 or more separators */
|| SPACE( value[1] ) || SPACE( d[-1] ) ) {
*d++ = *s;
} else {
/* convert to non-quoted value: */
if ( value_separator == NULL ) { /* no separators */
memmove ( value, value+1, (d-value)-1 );
--d;
} else { /* 1 separator */
memmove ( value, value+1, (value_separator-value)-1 );
*(value_separator - 1) = '\\';
}
}
break;
}
if ( SEPARATOR( *s )) {
if ( value_separator ) value_separator = dn;
else value_separator = d;
}
*d++ = *s;
break;
case B4SEPARATOR:
if ( SEPARATOR( *s ) ) {
state = B4TYPE;
*d++ = (*s == '+') ? '+' : ',';
}
break;
default:
/* LDAPDebug( LDAP_DEBUG_ANY,
"slapi_dn_normalize - unknown state %d\n", state, 0, 0 );*/
break;
}
if ( *s != '\\' ) {
gotesc = 0;
} else {
gotesc = 1;
if ( s+2 < end ) {
auto int n = hexchar2int( s[1] );
if ( n >= 0 ) {
auto int n2 = hexchar2int( s[2] );
if ( n2 >= 0 ) {
n = (n << 4) + n2;
if (n == 0) { /* don't change \00 */
*d++ = *++s;
*d++ = *++s;
gotesc = 0;
} else { /* change \xx to a single char */
++s;
*(unsigned char*)(s+1) = n;
}
}
}
}
}
}
/* Trim trailing spaces */
while ( d != dn && *(d - 1) == ' ' ) d--;
*d = 0;
return( dn );
}
/* if dn contains an unescaped quote return true */
DS_EXPORT_SYMBOL int
ds_dn_uses_LDAPv2_quoting(const char *dn)
{
const char ESC = '\\';
const char Q = '"';
int ret = 0;
const char *p = 0;
/* check dn for a even number (incl. 0) of ESC followed by Q */
if (!dn)
return ret;
p = strchr(dn, Q);
if (p)
{
int nESC = 0;
for (--p; (p >= dn) && (*p == ESC); --p)
++nESC;
if (!(nESC % 2))
ret = 1;
}
return ret;
}
--- NEW FILE dsalib_filename.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#endif
#include "dsalib.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include "nspr.h"
static char *
get_month_str(int month)
{
static char *month_str[] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
"Nov", "Dec"};
if ( (month < 1) || (month > 12) )
return("Unknown month");
return(month_str[month - 1]);
}
/*
* Returns a string describing the meaning of the filename.
* Two different formats are supported.
*/
DS_EXPORT_SYMBOL char *
ds_get_file_meaning(char *file)
{
static char meaning[BIG_LINE];
#define FILE_EXPECTED_SIZE1 14
#define FILE_EXPECTED_SIZE2 17
char *name;
char *tmp;
int i;
int month;
int day;
int hour;
int minute;
int sec;
int year;
/*
* Expect a file name in format 06041996123401 (FILE_EXPECTED_SIZE1)
* which should return "Jun 4 12:34:01 1996"
* OR 1996_06_04_123401
* which should return "Jun 4 12:34:01 1996"
*/
if ( file == NULL )
return(NULL);
name = strdup(file);
if ( name == NULL )
return(NULL);
if ( (tmp = strrchr(name, '.')) != NULL )
*tmp = '\0';
if ( strlen(name) == FILE_EXPECTED_SIZE1 ) {
for ( i = 0; i < FILE_EXPECTED_SIZE1; i++ )
if ( !isdigit(name[i]) )
return(NULL);
if ( (sscanf(name, "%2d%2d%4d%2d%2d%2d", &month, &day, &year, &hour,
&minute, &sec)) == -1 )
return(NULL);
} else if ( strlen(name) == FILE_EXPECTED_SIZE2 ) {
for ( i = 0; i < FILE_EXPECTED_SIZE2; i++ )
if ( !isdigit(name[i]) )
if ( name[i] != '_' )
return(NULL);
if ( (sscanf(name, "%4d_%2d_%2d_%2d%2d%2d", &year, &month, &day, &hour,
&minute, &sec)) == -1 )
return(NULL);
} else
return(NULL);
if ( (month < 1) || (month > 12) )
return(NULL);
if ( (day < 1) || (day > 31) )
return(NULL);
if ( (year < 1000) || (year > 2100) )
return(NULL);
if ( (hour < 0) || (hour > 24) )
return(NULL);
if ( (minute < 0) || (minute > 60) )
return(NULL);
if ( (sec < 0) || (sec > 60) )
return(NULL);
PR_snprintf(meaning, sizeof(meaning), "%s % 2d %02d:%02d:%02d %4d", get_month_str(month),
day, hour, minute, sec, year);
return(meaning);
}
--- NEW FILE dsalib_ldif.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#include <process.h>
#include <malloc.h>
#define popen _popen
#define pclose _pclose
#else
#include <unistd.h>
#endif
#include "dsalib.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include "nspr.h"
#include "plstr.h"
#ifndef XP_WIN32
#define SCRIPT_SUFFIX "" /* shell scripts have no suffix */
#else
#define SCRIPT_SUFFIX ".bat" /* batch file suffix */
#endif
static int
process_and_report( char *line, int line_size, FILE *cmd )
{
int err = 0;
while(fgets(line, line_size, cmd)) {
/* Strip off line feeds */
int ind = strlen( line ) - 1;
#ifdef DEBUG_CGI
fprintf(stderr, "read line=[%s] ind=%d\n", line, ind);
#endif /* DEBUG_CGI */
fprintf( stdout, ": %s", line );
fflush(0);
while ( (ind >= 0) &&
((line[ind] == '\n') ||
(line[ind] == '\r')) ) {
line[ind] = 0;
ind--;
}
if ( ind < 1 ) {
continue;
}
ds_send_status(line);
if ( (strstr(line, "bad LDIF") != NULL) ) {
#ifdef DEBUG_CGI
fprintf(stderr, "invalid ldif file\n");
#endif /* DEBUG_CGI */
err = DS_INVALID_LDIF_FILE;
} else if ( 0 == err ) {
if ( (strstr(line, "err=") != NULL) ) {
#ifdef DEBUG_CGI
fprintf(stderr, "unknown error\n");
#endif /* DEBUG_CGI */
err = DS_UNKNOWN_ERROR;
}
}
}
#ifdef DEBUG_CGI
fprintf(stderr, "process_and_report finished err=%d\n", err);
#endif /* DEBUG_CGI */
return err;
}
static int exec_and_report( char *startup_line )
{
FILE *cmd = NULL;
char line[BIG_LINE];
int haderror = 0;
PATH_FOR_PLATFORM( startup_line );
alter_startup_line(startup_line);
fflush(stdout);
cmd = popen(startup_line, "r");
if(!cmd) {
printf("could not open pipe [%s]: %d\n",
startup_line, errno);
#ifdef DEBUG_CGI
fprintf(stderr, "could not open pipe [%s]: %d\n",
startup_line, errno);
#endif /* DEBUG_CGI */
return DS_CANNOT_EXEC;
}
haderror = process_and_report( line, sizeof(line), cmd );
pclose(cmd);
return haderror;
}
/*
* Execute a shell command.
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_exec_and_report( char *startup_line )
{
return exec_and_report( startup_line );
}
/*
* Create a database based on a file name.
* 0: success
* anything else: failure
*/
static int
importldif(char *file, int preserve, char *backend, char *subtree)
{
char startup_line[BIG_LINE];
char *root;
int haderror = 0;
int i = 0, error = -1;
int status;
struct stat fstats;
char errbuf[ BIG_LINE ];
char **db_files = NULL, *changelogdir = NULL;
int rc;
errbuf[ 0 ] = '\0';
if ( file == NULL ) {
#ifdef DEBUG_CGI
fprintf(stderr, "importldif: null file\n");
#endif /* DEBUG_CGI */
return DS_NULL_PARAMETER;
}
status = ds_get_updown_status();
if ( status == DS_SERVER_UP ) {
#ifdef DEBUG_CGI
fprintf(stderr, "importldif: server is not down\n");
#endif /* DEBUG_CGI */
return DS_SERVER_MUST_BE_DOWN;
}
if ( (root = ds_get_install_root()) == NULL ) {
#ifdef DEBUG_CGI
fprintf(stderr, "importldif: could not get server root\n");
#endif /* DEBUG_CGI */
return DS_NO_SERVER_ROOT;
}
if ( file[strlen(file) - 1] == '\n' ) /* strip out returns */
file[strlen(file) - 1] = '\0';
/* Make sure the file exists and is not a directory: 34347 */
if( stat( file, &fstats ) == -1 && errno == ENOENT ) {
#ifdef DEBUG_CGI
fprintf(stderr, "importldif: could not open %s\n", file);
#endif /* DEBUG_CGI */
return DS_CANNOT_OPEN_LDIF_FILE;
} else if( fstats.st_mode & S_IFDIR ) {
#ifdef DEBUG_CGI
fprintf(stderr, "importldif: not a file %s\n", file);
#endif /* DEBUG_CGI */
return DS_IS_A_DIRECTORY;
}
if ( preserve ) {
PR_snprintf(startup_line, BIG_LINE, "%s%cldif2db%s -i %s%s%s",
root, FILE_SEP, SCRIPT_SUFFIX,
ENQUOTE, file, ENQUOTE);
} else if (backend) {
PR_snprintf(startup_line, BIG_LINE, "%s%cldif2db%s -n %s%s%s -i %s%s%s",
root, FILE_SEP, SCRIPT_SUFFIX,
ENQUOTE, backend, ENQUOTE,
ENQUOTE, file, ENQUOTE);
} else if (subtree) {
PR_snprintf(startup_line, BIG_LINE, "%s%cldif2db%s -s %s%s%s -i %s%s%s",
root, FILE_SEP, SCRIPT_SUFFIX,
ENQUOTE, subtree, ENQUOTE,
ENQUOTE, file, ENQUOTE);
} else {
PR_snprintf(startup_line, BIG_LINE, "%s%cldif2db%s -i %s%s%s -noconfig",
root, FILE_SEP, SCRIPT_SUFFIX,
ENQUOTE, file, ENQUOTE);
}
alter_startup_line(startup_line);
fflush(stdout);
#ifdef DEBUG_CGI
fprintf(stderr, "importldif: executing %s\n", startup_line);
#endif /* DEBUG_CGI */
error = exec_and_report(startup_line);
/*error = system(startup_line);*/
if ( error != 0 ) {
#ifdef DEBUG_CGI
fprintf(stderr, "importldif: error=%d\n", error);
#endif /* DEBUG_CGI */
return error;
}
/* Remove the changelog database, if present */
changelogdir = ds_get_config_value(0xdeadbeef);
if ( changelogdir != NULL ) {
db_files = ds_get_file_list( changelogdir );
if ( db_files != NULL ) {
ds_send_status("Removing changelog database...");
}
for ( i = 0; db_files != NULL && db_files[ i ] != NULL; i++ ) {
char sbuf[ BIG_LINE ];
char filename[ BIG_LINE ];
if ( strlen( db_files[ i ]) > 0 ) {
PR_snprintf( filename, BIG_LINE, "%s%c%s", changelogdir,
FILE_SEP, db_files[ i ]);
PR_snprintf(sbuf, BIG_LINE, "Removing %s", filename);
ds_send_status( sbuf );
rc = unlink( filename);
if ( rc != 0 ) {
PR_snprintf( errbuf, BIG_LINE, "Warning: some files in %s could not "
"be removed\n", changelogdir );
haderror++;
}
}
}
}
if ( strlen( errbuf ) > 0 ) {
ds_send_error( errbuf, 0 );
}
return error;
}
/*
* Create a database based on a file name.
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_ldif2db(char *file)
{
return importldif( file, 0, NULL, NULL );
}
/*
* Create a database based on a file name.
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_ldif2db_preserve(char *file)
{
return importldif( file, 1, NULL, NULL );
}
/*
* import an ldif file into a named backend or subtree
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_ldif2db_backend_subtree(char *file, char *backend, char *subtree)
{
return importldif( file, 0, backend, subtree );
}
/*
* Create a LDIF file based on a file name.
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_db2ldif_subtree(char *file, char *subtree)
{
char startup_line[BIG_LINE];
char statfile[PATH_MAX];
char outfile[PATH_MAX];
char scriptfile[PATH_MAX];
char *tmp_dir;
char *root;
int haderror = 0;
int error = -1;
FILE *sf = NULL;
if ( (root = ds_get_install_root()) == NULL ) {
return DS_NO_SERVER_ROOT;
}
if ( (file == NULL) || (strlen(file) == 0) )
file = NULL;
tmp_dir = ds_get_tmp_dir();
PR_snprintf(statfile, PATH_MAX, "%s%cdb2ldif.%d", tmp_dir, FILE_SEP, (int) getpid());
#if defined( XP_WIN32 )
if( file == NULL )
{
time_t ltime;
file = malloc( BIG_LINE );
time( <ime );
PR_snprintf( file, BIG_LINE, "%s", ctime( <ime ) );
ds_timetofname( file );
}
#endif
if ( file == NULL )
*outfile = 0;
else
PL_strncpyz( outfile, file, sizeof(outfile) );
PR_snprintf(scriptfile, PATH_MAX, "%s%cdb2ldif", root, FILE_SEP);
PATH_FOR_PLATFORM( outfile );
PATH_FOR_PLATFORM( scriptfile );
if ( subtree == NULL ) {
PR_snprintf(startup_line, sizeof(startup_line),
"%s "
"%s%s%s > "
"%s%s%s 2>&1",
scriptfile,
ENQUOTE, outfile, ENQUOTE,
ENQUOTE, statfile, ENQUOTE);
} else {
PR_snprintf(startup_line, sizeof(startup_line),
"%s "
"%s%s%s "
"-s \"%s\" > "
"%s%s%s 2>&1",
scriptfile,
ENQUOTE, outfile, ENQUOTE,
subtree,
ENQUOTE, statfile, ENQUOTE);
}
fflush(0);
alter_startup_line(startup_line);
error = system(startup_line);
if ( error == -1 ) {
return DS_CANNOT_EXEC;
}
sf = fopen(statfile, "r");
if( sf ) {
while ( fgets(startup_line, BIG_LINE, sf) ) {
/*
The db2ldif process will usually print out a summary at the
end, but that is not an error
*/
char *ptr = strstr(startup_line, "Processed");
if (ptr && strstr(ptr, "entries."))
{
ds_show_message(startup_line);
}
else
{
haderror = 1;
ds_send_error(startup_line, 0);
}
}
fclose(sf);
unlink(statfile);
}
if ( haderror )
return DS_UNKNOWN_ERROR;
return 0;
}
/*
* Create a LDIF file based on a file name.
* 0: success
* anything else: failure
*/
DS_EXPORT_SYMBOL int
ds_db2ldif(char *file)
{
return ds_db2ldif_subtree(file, NULL);
}
--- NEW FILE dsalib_location.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#endif
#include "dsalib.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "nspr.h"
#include "plstr.h"
/*
* Returns the server root. Info is
* returned in a static area. The caller must copy it
* for reuse if needed.
*/
DS_EXPORT_SYMBOL char *
ds_get_server_root()
{
char *root;
if ( (root = getenv("NETSITE_ROOT")) == NULL )
return(NULL);
/* WIN32: Needed to take care of embedded space, */
/* otherwise system() call fails */
root = ds_makeshort( root );
return root;
}
/*
* Returns the install location of the server. Info is
* returned in a static area. The caller must copy it
* for reuse if needed.
*/
DS_EXPORT_SYMBOL char *
ds_get_install_root()
{
char *root;
char *ds_name;
static char install_root[PATH_MAX];
if ( (root = ds_get_server_root()) == NULL )
return(NULL);
if ( (ds_name = ds_get_server_name()) == NULL )
return(NULL);
PR_snprintf(install_root, sizeof(install_root), "%s/%s", root, ds_name);
return(install_root);
}
/*
* Returns the config file location of the server. Info is
* returned in a static area. The caller must copy it
* for reuse if needed.
*/
DS_EXPORT_SYMBOL char *
ds_get_config_dir()
{
return getenv("DS_CONFIG_DIR");
}
/*
* set config_dir to environment variable DS_CONFIG_DIR
* to retrieve the value using ds_get_config_dir later.
*/
DS_EXPORT_SYMBOL void
ds_set_config_dir(char *config_dir)
{
static char env[PATH_MAX];
PR_snprintf(env, sizeof(env), "DS_CONFIG_DIR=%s", config_dir);
putenv(env);
}
/*
* Returns the run dir of the server, where pid files are put.
* Info is returned in a static area. The caller must copy it
* for reuse if needed.
*/
DS_EXPORT_SYMBOL char *
ds_get_run_dir()
{
return getenv("DS_RUN_DIR");
}
/*
* set run_dir to environment variable DS_RUN_DIR
* to retrieve the value using ds_get_run_dir later.
*/
DS_EXPORT_SYMBOL void
ds_set_run_dir(char *run_dir)
{
static char env[PATH_MAX];
PR_snprintf(env, sizeof(env), "DS_RUN_DIR=%s", run_dir);
putenv(env);
}
/*
* Returns the bakup dir of the server, where db backup files are put.
* Info is returned in a static area. The caller must copy it
* for reuse if needed.
*/
DS_EXPORT_SYMBOL char *
ds_get_bak_dir()
{
return getenv("DS_BAK_DIR");
}
/*
* set bak_dir to environment variable DS_BAK_DIR
* to retrieve the value using ds_get_bak_dir later.
*/
DS_EXPORT_SYMBOL void
ds_set_bak_dir(char *bak_dir)
{
static char env[PATH_MAX];
PR_snprintf(env, sizeof(env), "DS_BAK_DIR=%s", bak_dir);
putenv(env);
}
/*
* Returns the tmp dir of the server, where tmp files are put.
* Info is returned in a static area. The caller must copy it
* for reuse if needed.
*/
DS_EXPORT_SYMBOL char *
ds_get_tmp_dir()
{
return getenv("DS_TMP_DIR");
}
/*
* set bak_dir to environment variable DS_TMP_DIR
* to retrieve the value using ds_get_tmp_dir later.
*/
DS_EXPORT_SYMBOL void
ds_set_tmp_dir(char *tmp_dir)
{
static char env[PATH_MAX];
PR_snprintf(env, sizeof(env), "DS_TMP_DIR=%s", tmp_dir);
putenv(env);
}
/*
* Returns the install location of the server under the admserv
* directory.
*/
DS_EXPORT_SYMBOL char *
ds_get_admserv_based_root()
{
char *root;
char *ds_name;
static char install_root[PATH_MAX];
if ( (root = getenv("ADMSERV_ROOT")) == NULL )
return(NULL);
if ( (ds_name = ds_get_server_name()) == NULL )
return(NULL);
PR_snprintf(install_root, sizeof(install_root), "%s/%s", root, ds_name);
return(install_root);
}
DS_EXPORT_SYMBOL char *
ds_get_server_name()
{
if( getenv("SERVER_NAMES") )
return( getenv("SERVER_NAMES") );
else {
static char logfile[PATH_MAX];
char *buf;
char *out = logfile;
buf = getenv("SCRIPT_NAME");
if ( buf && (*buf == '/') )
buf++;
while ( *buf && (*buf != '/') ) {
*out++ = *buf++;
}
*out = 0;
return logfile;
}
}
DS_EXPORT_SYMBOL char *
ds_get_logfile_name(int config_type)
{
char *filename;
char **ds_config = NULL;
static char logfile[PATH_MAX+1];
if ( (ds_config = ds_get_config(DS_REAL_CONFIG)) == NULL ) {
/* For DS 4.0, no error output if file doesn't exist - that's
a normal situation */
/* ds_send_error("ds_get_config(DS_REAL_CONFIG) == NULL", 0); */
return(NULL);
}
filename = ds_get_value(ds_config, ds_get_var_name(config_type), 0, 1);
if ( filename == NULL ) {
/* For DS 4.0, no error output if file doesn't exist - that's
a normal situation */
/* ds_send_error("ds_get_logfile_name: filename == NULL", 0); */
return(NULL);
}
if ( ((int) strlen(filename)) >= PATH_MAX ) {
ds_send_error("ds_get_logfile_name: filename too long", 0);
free(filename);
return(NULL);
}
PL_strncpyz(logfile, filename, sizeof(logfile));
free(filename);
return(logfile);
}
DS_EXPORT_SYMBOL char *
ds_get_errors_name()
{
return( ds_get_logfile_name(DS_ERRORLOG) );
}
DS_EXPORT_SYMBOL char *
ds_get_access_name()
{
return( ds_get_logfile_name(DS_ACCESSLOG) );
}
DS_EXPORT_SYMBOL char *
ds_get_audit_name()
{
return( ds_get_logfile_name(DS_AUDITFILE) );
}
--- NEW FILE dsalib_pw.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Adjust password policy management related variables.
*
* Valerie Chu
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <sys/types.h>
#include "ldap.h"
#include "ldif.h"
#include "sechash.h"
#include "dsalib.h"
#include "dsalib_pw.h"
#include "prtime.h"
#include "prlong.h"
#include "prmem.h"
#include <pk11func.h>
#include <pk11pqg.h>
#define SHA1_SALT_LENGTH 8 /* number of bytes of data in salt */
#define PWD_HASH_PREFIX_START '{'
#define PWD_HASH_PREFIX_END '}'
#define SALTED_SHA1_SCHEME_NAME "SSHA"
#define SALTED_SHA1_NAME_LEN 4
/*
WARNING: The following code is blatantly copied from the server
pwdstorage ssha_pwd.c plugin. It would be nice to share this
code with the server. The problem is that the server wants to
use slapi_ch_malloc to allocate the memory for the returned
password - this function is not available outside the server
(as in the setup programs that also want to hash the password)
We need to figure out a way to put this code into a library
in such a way that the memory allocation functions to use
can be passed in or set beforehand.
*/
static void
ssha_rand_array(void *randx, size_t len)
{
PK11_RandomUpdate(randx, len);
PK11_GenerateRandom((unsigned char *)randx, (int)len);
}
/*
* A salted SHA1 hash
* if salt is null, no salt is used (this is for backward compatibility)
*/
SECStatus
sha1_salted_hash(unsigned char *hash_out, char *pwd, struct berval *salt)
{
PK11Context *ctx;
unsigned int outLen;
SECStatus rc;
if (salt && salt->bv_len) {
ctx = PK11_CreateDigestContext(SEC_OID_SHA1);
if (ctx == NULL) {
rc = SECFailure;
}
else {
PK11_DigestBegin(ctx);
PK11_DigestOp(ctx, (unsigned char*)pwd, strlen(pwd));
PK11_DigestOp(ctx, (unsigned char*)(salt->bv_val), salt->bv_len);
PK11_DigestFinal(ctx, hash_out, &outLen, SHA1_LENGTH);
PK11_DestroyContext(ctx, 1);
if (outLen == SHA1_LENGTH)
rc = SECSuccess;
else
rc = SECFailure;
}
}
else {
/*backward compatibility*/
rc = PK11_HashBuf(SEC_OID_SHA1, hash_out, (unsigned char *)pwd, strlen(pwd));
}
return rc;
}
char *
salted_sha1_pw_enc( char *pwd )
{
unsigned char hash[ SHA1_LENGTH + SHA1_SALT_LENGTH ];
unsigned char *salt = hash + SHA1_LENGTH;
struct berval saltval;
char *enc;
saltval.bv_val = (void*)salt;
saltval.bv_len = SHA1_SALT_LENGTH;
/* generate a new random salt */
/* Note: the uninitialized salt array provides a little extra entropy
* to the random array generation, but it is not really needed since
* PK11_GenerateRandom takes care of seeding. In any case, it doesn't
* hurt. */
ssha_rand_array( salt, SHA1_SALT_LENGTH );
/* SHA1 hash the user's key */
if ( sha1_salted_hash( hash, pwd, &saltval ) != SECSuccess ) {
return( NULL );
}
if (( enc = PR_Malloc( 3 + SALTED_SHA1_NAME_LEN +
LDIF_BASE64_LEN(sizeof(hash)))) == NULL ) {
return( NULL );
}
sprintf( enc, "%c%s%c", PWD_HASH_PREFIX_START, SALTED_SHA1_SCHEME_NAME,
PWD_HASH_PREFIX_END );
(void)ldif_base64_encode( hash, enc + 2 + SALTED_SHA1_NAME_LEN,
sizeof(hash), -1 );
return( enc );
}
DS_EXPORT_SYMBOL char *
ds_salted_sha1_pw_enc (char* pwd)
{
return( salted_sha1_pw_enc(pwd) );
}
--- NEW FILE dsalib_tailf.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#endif
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include "dsalib.h"
#include "prthread.h"
#include "plstr.h"
/*
* Function: adjustFile
* Property: Adjust the file offset to the "tail" of the file
* Called by: DisplayTail
* Return: -1 for error, else file size
*/
static int
adjustFile(FILE *fp, int curSize)
{
struct stat statBuf;
int fd = fileno(fp);
if ( fstat(fd, &statBuf) == -1 )
return(-1);
if ( statBuf.st_size < curSize ) /* file has shrunk! */
{
if ( fseek(fp, 0L, 0) == -1 ) /* get back to the beginning */
return(-1);
}
curSize = (int) statBuf.st_size;
if ( !curSize )
curSize = 1;
return(curSize);
}
/*
* Function: wrapLines
* Property: wrap lines at 50 characters. When a wrap point is encountered,
* insert the string "\n", since the buffer is going to be placed
* inside a JavaScript alert() call.
* Called by: ds_display_tail
* Return: pointer to wrapped buffer. Caller should free.
*/
static char *
wrapLines( char *buf )
{
char *src = buf;
char *obuf, *dst;
int lwidth = 0;
obuf = malloc( strlen( buf ) * 2 ); /* conservative */
if ( obuf == NULL ) {
return NULL;
}
dst = obuf;
while ( *src != '\0' ) {
if (( ++lwidth > 50 ) && isspace( *src )) {
*dst++ = '\\';
*dst++ = 'n';
lwidth = 0;
src++;
} else {
*dst++ = *src++;
}
}
*dst = '\0';
return obuf;
}
DS_EXPORT_SYMBOL int
ds_get_file_size(char *fileName)
{
struct stat statBuf;
if ( fileName == NULL )
return(0);
if ( stat(fileName, &statBuf) == -1 )
return(0);
return(statBuf.st_size);
}
/*
* Function: ds_display_tail
* Property: follow the tail and display it for timeOut secs or until the line
* read from the file contains the string doneMsg; the lastLine, if not null,
* will be filled in with the last line read from the file; this is useful
* for determining why the server failed to start e.g. port in use, ran out
* of semaphores, database is corrupted, etc.
* Calls: adjustFile
*/
DS_EXPORT_SYMBOL void
ds_display_tail(char *fileName, int timeOut, int startSeek, char *doneMsg,
char *lastLine)
{
FILE *fp = NULL;
int fd;
char msgBuf[BIG_LINE];
struct stat statBuf;
int curSize;
int i = timeOut;
if (lastLine != NULL)
lastLine[0] = 0;
if ( fileName == NULL )
return;
/*
* Open the file.
* Try to keep reading it assuming that it may get truncated.
*/
while (i && !fp)
{
fp = fopen(fileName, "r");
if (!fp)
{
PR_Sleep(PR_SecondsToInterval(1));
--i;
/* need to print something so http connection doesn't
timeout and also to let the user know something is
happening . . .
*/
if (!(i % 10))
{
ds_send_status("Attempting to obtain server status . . .");
}
}
}
if (!i || !fp)
return;
fd = fileno(fp);
if ( fstat(fd, &statBuf) == -1 ) {
(void) fclose(fp);
return;
}
curSize = (int) statBuf.st_size;
if ( startSeek < curSize )
curSize = startSeek;
if ( curSize > 0 )
if ( fseek(fp, curSize, SEEK_SET) == -1 ) {
(void) fclose(fp);
return;
}
if ( !curSize )
curSize = 1; /* ensure minimum */
while ( i )
{
int newCurSize;
newCurSize = curSize = adjustFile(fp, curSize);
if ( curSize == -1 ) {
(void) fclose(fp);
return;
}
while ( fgets(msgBuf, sizeof(msgBuf), fp) )
{
char *tmp;
if (lastLine != NULL)
PL_strncpyz(lastLine, msgBuf, BIG_LINE);
if ( (tmp = strchr(msgBuf, ((int) '\n'))) != NULL )
*tmp = '\0'; /* strip out real newlines from here */
ds_send_status(msgBuf);
if ( (strstr(msgBuf, "WARNING: ") != NULL) ||
(strstr(msgBuf, "ERROR: ") != NULL) ) {
char *wrapBuf;
wrapBuf = wrapLines( msgBuf );
if ( wrapBuf != NULL ) {
ds_send_error(wrapBuf, 5);
} else {
ds_send_error(msgBuf, 5);
}
}
if ( (doneMsg != NULL) && (strstr(msgBuf, doneMsg)) ) {
(void) fclose(fp);
return;
}
newCurSize = adjustFile(fp, newCurSize);
if ( newCurSize == -1 ) {
(void) fclose(fp);
return;
}
}
if ( ferror(fp) ) {
(void) fclose(fp);
return;
}
clearerr(fp); /* clear eof condition */
PR_Sleep(PR_SecondsToInterval(1));
if ( newCurSize != curSize )
i = timeOut; /* keep going till no more changes */
else
i--;
}
(void) fclose(fp);
}
--- NEW FILE dsalib_updown.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#include <process.h>
#include "regparms.h"
#else
#include <signal.h>
#include <sys/signal.h>
#include <unistd.h>
#endif
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include "dsalib.h"
#include <string.h>
#include "nspr.h"
#if defined( XP_WIN32 )
SC_HANDLE schService;
SC_HANDLE schSCManager;
int StartServer();
int StopandRestartServer();
int StopServer();
int StopNetscapeProgram();
int StartNetscapeProgram();
int StopNetscapeService();
int StartNetscapeService();
void WaitForServertoStop();
#endif
/*
* Get status for the Directory Server.
* 0 -- down
* 1 -- up
* -1 -- unknown
*/
#if !defined( XP_WIN32 )
static pid_t server_pid;
DS_EXPORT_SYMBOL int
ds_get_updown_status()
{
char pid_file_name[BIG_LINE];
char *rundir;
FILE *pidfile;
int ipid = -1;
int status = 0;
if ( (rundir = ds_get_run_dir()) == NULL ) {
fprintf(stderr, "ds_get_updown_status: could not get install root\n");
return(DS_SERVER_UNKNOWN);
}
PR_snprintf(pid_file_name, BIG_LINE, "%s/%s.pid", rundir, ds_get_server_name());
pidfile = fopen(pid_file_name, "r");
if ( pidfile == NULL ) {
/*
fprintf(stderr,
"ds_get_updown_status: could not open pid file=%s errno=%d\n",
pid_file_name, errno);
*/
return(DS_SERVER_DOWN);
}
status = fscanf(pidfile, "%d\n", &ipid);
fclose(pidfile);
if ( status == -1 ) {
fprintf(stderr,
"ds_get_updown_status: pidfile=%s server_pid=%d errno=%d\n",
pid_file_name, ipid, errno);
unlink(pid_file_name); /* junk in file? */
return(DS_SERVER_DOWN);
}
server_pid = (pid_t) ipid;
if ( (status = kill(server_pid, 0)) != 0 && errno != EPERM ) {
/* we should get ESRCH if the server is down, anything else may be
a real problem */
if (errno != ESRCH) {
fprintf(stderr,
"ds_get_updown_status: pidfile=%s server_pid=%d status=%d errno=%d\n",
pid_file_name, server_pid, status, errno);
}
unlink(pid_file_name); /* pid does not exist! */
return(DS_SERVER_DOWN);
}
return(DS_SERVER_UP);
}
#else
DS_EXPORT_SYMBOL int
ds_get_updown_status()
{
char *ds_name = ds_get_server_name();
HANDLE hServerDoneEvent = NULL;
/* watchdog.c creates a global event of this same name */
if((hServerDoneEvent = OpenEvent(EVENT_ALL_ACCESS, TRUE, ds_name)) != NULL)
{
CloseHandle(hServerDoneEvent);
return(DS_SERVER_UP);
}
if(GetLastError() == ERROR_ACCESS_DENIED) /* it exists */
return(DS_SERVER_UP);
/* assume it's not running. */
return(DS_SERVER_DOWN);
}
#endif
/*
This function does not require calling ds_get_config(), but requires
that that information be passed in. This is very useful for starting
the server during installation, because we already have all of the
configuration information in memory, we don't need to read it in
*/
DS_EXPORT_SYMBOL int
ds_bring_up_server_install(int verbose, char *root, char *errorlog)
{
#if !defined( XP_WIN32 )
char startup_line[BIG_LINE];
char statfile[PATH_MAX];
char *tmp_dir;
#endif
int error = -1;
int status = DS_SERVER_DOWN;
int cur_size = 0;
FILE *sf = NULL;
char msgBuf[BIG_LINE] = {0};
int secondsToWaitForServer = 600;
char *serverStartupString = "slapd started.";
status = ds_get_updown_status();
if ( status == DS_SERVER_UP )
return(DS_SERVER_ALREADY_UP);
if (!root || !errorlog)
return(DS_SERVER_UNKNOWN);
if (verbose) {
ds_send_status("starting up server ...");
cur_size = ds_get_file_size(errorlog);
}
#if !defined( XP_WIN32 )
tmp_dir = ds_get_tmp_dir();
PR_snprintf(statfile, PATH_MAX, "%s%cstartup.%d", tmp_dir, FILE_SEP, (int)getpid());
PR_snprintf(startup_line, BIG_LINE, "%s%c%s > %s 2>&1",
root, FILE_SEP, START_SCRIPT, statfile);
alter_startup_line(startup_line);
error = system(startup_line);
if (error == -1)
error = DS_SERVER_DOWN; /* could not start server */
else
error = DS_SERVER_UP; /* started server */
#else
error = StartServer();
#endif
if (error != DS_SERVER_UP)
{
#if !defined( XP_WIN32 )
FILE* fp = fopen(statfile, "r");
if (fp)
{
while(fgets(msgBuf, BIG_LINE, fp))
ds_send_status(msgBuf);
fclose(fp);
}
#endif
return DS_SERVER_COULD_NOT_START;
}
if (verbose)
{
/*
* Stop in N secs or whenever the startup message comes up.
* Do whichever happens first. msgBuf will contain the last
* line read from the errorlog.
*/
ds_display_tail(errorlog, secondsToWaitForServer, cur_size,
serverStartupString, msgBuf);
}
if ( error != DS_SERVER_UP ) {
int retval = DS_SERVER_UNKNOWN;
if (strstr(msgBuf, "semget"))
retval = DS_SERVER_MAX_SEMAPHORES;
else if (strstr(msgBuf, "Back-End Initialization Failed"))
retval = DS_SERVER_CORRUPTED_DB;
else if (strstr(msgBuf, "not initialized... exiting"))
retval = DS_SERVER_CORRUPTED_DB;
else if (strstr(msgBuf, "address is in use"))
retval = DS_SERVER_PORT_IN_USE;
#if defined( XP_WIN32 )
/* on NT, if we run out of resources, there will not even be an error
log
*/
else if (msgBuf[0] == 0) {
retval = DS_SERVER_NO_RESOURCES;
}
#endif
if (verbose)
ds_send_error("error in starting server.", 1);
return(retval);
}
if (verbose) {
#if !defined( XP_WIN32 )
if( !(sf = fopen(statfile, "r")) ) {
ds_send_error("could not read status file.", 1);
return(DS_SERVER_UNKNOWN);
}
while ( fgets(startup_line, BIG_LINE, sf) )
ds_send_error(startup_line, 0);
fclose(sf);
unlink(statfile);
#endif
status = DS_SERVER_UNKNOWN;
if (strstr(msgBuf, "semget"))
status = DS_SERVER_MAX_SEMAPHORES;
else if (strstr(msgBuf, "Back-End Initialization Failed"))
status = DS_SERVER_CORRUPTED_DB;
else if (strstr(msgBuf, "not initialized... exiting"))
status = DS_SERVER_CORRUPTED_DB;
else if (strstr(msgBuf, "address is in use"))
status = DS_SERVER_PORT_IN_USE;
#if defined( XP_WIN32 )
/* on NT, if we run out of resources, there will not even be an error
log
*/
else if (msgBuf[0] == 0) {
status = DS_SERVER_NO_RESOURCES;
}
#endif
} else {
int tries;
for (tries = 0; tries < secondsToWaitForServer; tries++) {
if (ds_get_updown_status() == DS_SERVER_UP) break;
PR_Sleep(PR_SecondsToInterval(1));
}
if (verbose) {
char str[100];
PR_snprintf(str, sizeof(str), "Had to retry %d times", tries);
ds_send_status(str);
}
}
if ( (status == DS_SERVER_DOWN) || (status == DS_SERVER_UNKNOWN) )
status = ds_get_updown_status();
return(status);
}
/*
* Start the Directory Server and return status.
* Do not start if the server is already started.
* 0 -- down
* 1 -- up
* -1 -- unknown
* -2 -- already up
*/
DS_EXPORT_SYMBOL int
ds_bring_up_server(int verbose)
{
char *root;
int status;
char *errorlog;
status = ds_get_updown_status();
if ( status == DS_SERVER_UP )
return(DS_SERVER_ALREADY_UP);
if ( (root = ds_get_install_root()) == NULL )
return(DS_SERVER_UNKNOWN);
errorlog = ds_get_config_value(DS_ERRORLOG);
if ( errorlog == NULL ) {
errorlog = ds_get_errors_name(); /* fallback */
}
return ds_bring_up_server_install(verbose, root, errorlog);
}
DS_EXPORT_SYMBOL int
ds_bring_down_server()
{
char *root;
int status;
int cur_size;
char *errorlog;
status = ds_get_updown_status(); /* set server_pid too! */
if ( status != DS_SERVER_UP ) {
ds_send_error("The server is not up.", 0);
return(DS_SERVER_ALREADY_DOWN);
}
if ( (root = ds_get_install_root()) == NULL ) {
ds_send_error("Could not get the server root directory.", 0);
return(DS_SERVER_UNKNOWN);
}
ds_send_status("shutting down server ...");
if (!(errorlog = ds_get_errors_name())) {
ds_send_error("Could not get the error log filename.", 0);
return DS_SERVER_UNKNOWN;
}
cur_size = ds_get_file_size(errorlog);
#if !defined( XP_WIN32 )
if ( (kill(server_pid, SIGTERM)) != 0) {
if (errno == EPERM) {
ds_send_error("Not permitted to kill server.", 0);
fprintf (stdout, "[%s]: kill (%li, SIGTERM) failed with errno = EPERM.<br>\n",
ds_get_server_name(), (long)server_pid);
} else {
ds_send_error("error in killing server.", 1);
}
return(DS_SERVER_UNKNOWN);
}
#else
if( StopServer() == DS_SERVER_DOWN )
{
ds_send_status("shutdown: server shut down");
}
else
{
ds_send_error("error in killing server.", 1);
return(DS_SERVER_UNKNOWN);
}
#endif
/*
* Wait up to SERVER_STOP_TIMEOUT seconds for the stopped message to
* appear in the error log.
*/
ds_display_tail(errorlog, SERVER_STOP_TIMEOUT, cur_size, "slapd stopped.", NULL);
/* in some cases, the server will tell us it's down when it's really not,
so give the OS a chance to remove it from the process table */
PR_Sleep(PR_SecondsToInterval(1));
return(ds_get_updown_status());
}
#if defined( XP_WIN32 )
static BOOLEAN
IsService()
{
#if 0
CHAR ServerKey[512], *ValueString;
HKEY hServerKey;
DWORD dwType, ValueLength, Result;
PR_snprintf(ServerKey,sizeof(ServerKey), "%s\\%s", COMPANY_KEY, PRODUCT_KEY);
Result = RegOpenKey(HKEY_LOCAL_MACHINE, ServerKey, &hServerKey);
if (Result != ERROR_SUCCESS) {
return TRUE;
}
ValueLength = 512;
ValueString = (PCHAR)malloc(ValueLength);
Result = RegQueryValueEx(hServerKey, IS_SERVICE_KEY, NULL,
&dwType, ValueString, &ValueLength);
if (Result != ERROR_SUCCESS) {
return TRUE;
}
if (strcmp(ValueString, "yes")) {
return FALSE;
}
else {
return TRUE;
}
#else
return TRUE;
#endif
}
#if 0
NSAPI_PUBLIC BOOLEAN
IsAdminService()
{
CHAR AdminKey[512], *ValueString;
HKEY hAdminKey;
DWORD dwType, ValueLength, Result;
PR_snprintf(AdminKey,sizeof(AdminKey), "%s\\%s", COMPANY_KEY, ADMIN_REGISTRY_ROOT_KEY);
Result = RegOpenKey(HKEY_LOCAL_MACHINE, AdminKey, &hAdminKey);
if (Result != ERROR_SUCCESS) {
return TRUE;
}
ValueLength = 512;
ValueString = (PCHAR)malloc(ValueLength);
Result = RegQueryValueEx(hAdminKey, IS_SERVICE_KEY, NULL,
&dwType, ValueString, &ValueLength);
if (Result != ERROR_SUCCESS) {
return TRUE;
}
if (strcmp(ValueString, "yes")) {
return FALSE;
} else {
return TRUE;
}
}
#endif
int
StartServer()
{
CHAR ErrorString[512];
BOOLEAN Service;
/* Figure out if the server is a service or an exe */
Service = IsService();
if(Service) {
if (!(schSCManager = OpenSCManager(
NULL, // machine (NULL == local)
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
))) {
PR_snprintf(ErrorString, sizeof(ErrorString),
"Error: Could not open the ServiceControlManager:%d "
"Please restart the server %s from the Services Program Item "
"in the Control Panel", ds_get_server_name(), GetLastError());
ds_send_error(ErrorString, 0);
return(DS_SERVER_UNKNOWN);
}
return(StartNetscapeService());
} else {
return(StartNetscapeProgram());
}
}
int
StopandRestartServer()
{
CHAR ErrorString[512];
BOOLEAN Service;
/* First figure out if the server is a service or an exe */
Service = IsService();
if(Service) {
if (!(schSCManager = OpenSCManager(
NULL, // machine (NULL == local)
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
))) {
PR_snprintf(ErrorString, sizeof(ErrorString),
"Error: Could not restart server."
"Please restart the server %s from the Services Program Item "
"in the Control Panel", ds_get_server_name());
ds_send_error(ErrorString, 0);
return(DS_SERVER_UNKNOWN);
}
if (StopNetscapeService() != DS_SERVER_DOWN)
return(DS_SERVER_UNKNOWN);
return(StartNetscapeService());
} else {
if (StopNetscapeProgram() != DS_SERVER_DOWN)
return(DS_SERVER_UNKNOWN);
return(StartNetscapeProgram());
}
}
int
StopServer()
{
CHAR ErrorString[512];
BOOLEAN Service;
/* First figure out if the server is a service or an exe */
Service = IsService();
if(Service) {
if (!(schSCManager = OpenSCManager(
NULL, // machine (NULL == local)
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS // access required
))) {
PR_snprintf(ErrorString, sizeof(ErrorString),
"Error: Could not open the ServiceControlManager:%d "
"Please restart the server %s from the Services Program Item "
"in the Control Panel", ds_get_server_name(), GetLastError());
ds_send_error(ErrorString, 0);
return(DS_SERVER_UNKNOWN);
}
return(StopNetscapeService());
} else {
return(StopNetscapeProgram());
}
}
int
StartNetscapeProgram()
{
char line[BIG_LINE], cmd[BIG_LINE];
char *tmp = ds_get_install_root();
CHAR ErrorString[512];
STARTUPINFO siStartInfo;
PROCESS_INFORMATION piProcInfo;
FILE *CmdFile;
ZeroMemory(line, sizeof(line));
PR_snprintf(line, BIG_LINE, "%s\\startsrv.bat", tmp);
CmdFile = fopen(line, "r");
if (!CmdFile)
{
PR_snprintf(ErrorString, sizeof(ErrorString), "Error:Tried to start server %s "
": Could not open the startup script %s :Error %d. Please "
"run startsrv.bat from the server's root directory.",
ds_get_server_name(), line, errno);
ds_send_error(ErrorString, 0);
return(DS_SERVER_DOWN);
}
ZeroMemory(cmd, sizeof(cmd));
if (!fread(cmd, 1, BIG_LINE, CmdFile))
{
PR_snprintf(ErrorString, sizeof(ErrorString), "Error:Tried to start server %s "
": Could not read the startup script %s :Error %d. Please "
"run startsrv.bat from the server's root directory.",
ds_get_server_name(), line, errno);
ds_send_error(ErrorString, 0);
return(DS_SERVER_DOWN);
}
ZeroMemory(&siStartInfo, sizeof(STARTUPINFO));
siStartInfo.cb = sizeof(STARTUPINFO);
siStartInfo.lpReserved = siStartInfo.lpReserved2 = NULL;
siStartInfo.cbReserved2 = 0;
siStartInfo.lpDesktop = NULL;
if (!CreateProcess(NULL, cmd, NULL, NULL, FALSE,
0, NULL, NULL, &siStartInfo, &piProcInfo))
{
PR_snprintf(ErrorString, sizeof(ErrorString), "Error:Tried to start server %s "
": Could not start up the startup script %s :Error %d. Please "
"run startsrv.bat from the server's root directory.",
ds_get_server_name(), line, GetLastError());
ds_send_error(ErrorString, 0);
return(DS_SERVER_DOWN);
}
CloseHandle(piProcInfo.hProcess);
CloseHandle(piProcInfo.hThread);
return(DS_SERVER_UP);
}
int
StopNetscapeProgram()
{
HANDLE hEvent;
CHAR ErrorString[512];
char *servid = ds_get_server_name();
hEvent = CreateEvent(NULL, TRUE, FALSE, servid);
if(!SetEvent(hEvent))
{
PR_snprintf(ErrorString, sizeof(ErrorString), "Tried to stop existing server %s"
": Could not signal it to stop :Error %d",
servid, GetLastError());
ds_send_error(ErrorString, 0);
return(DS_SERVER_UNKNOWN);
}
return(DS_SERVER_DOWN);
}
int
StopNetscapeService()
{
BOOL ret;
SERVICE_STATUS ServiceStatus;
DWORD Error;
CHAR ErrorString[512];
char *serviceName = ds_get_server_name();
schService = OpenService(schSCManager, serviceName, SERVICE_ALL_ACCESS);
if (schService == NULL)
{
PR_snprintf(ErrorString, sizeof(ErrorString), "Tried to open service"
" %s: Error %d (%s). Please"
" stop the server from the Services Item in the Control Panel",
serviceName, GetLastError(), ds_system_errmsg());
ds_send_error(ErrorString, 0);
return(DS_SERVER_UP);
}
ret = ControlService(schService, SERVICE_CONTROL_STOP, &ServiceStatus);
Error = GetLastError();
/* if ControlService returns with ERROR_SERVICE_CANNOT_ACCEPT_CTRL and
the server status indicates that it is either shutdown or in the process
of shutting down, then just wait for it to stop as usual */
if (ret ||
((Error == ERROR_SERVICE_CANNOT_ACCEPT_CTRL) &&
((ServiceStatus.dwCurrentState == SERVICE_STOPPED) ||
(ServiceStatus.dwCurrentState == SERVICE_STOP_PENDING))))
{
CloseServiceHandle(schService);
/* We make sure that the service is stopped */
WaitForServertoStop();
return(DS_SERVER_DOWN);
}
else if (Error != ERROR_SERVICE_NOT_ACTIVE)
{
PR_snprintf(ErrorString, sizeof(ErrorString), "Tried to stop service"
" %s: Error %d (%s)."
" Please stop the server from the Services Item in the"
" Control Panel", serviceName, Error, ds_system_errmsg());
ds_send_error(ErrorString, 0);
return(DS_SERVER_UNKNOWN);
}
return(DS_SERVER_DOWN);
}
int
StartNetscapeService()
{
CHAR ErrorString[512];
int retries = 0;
char *serviceName = ds_get_server_name();
schService = OpenService(
schSCManager, // SCManager database
serviceName, // name of service
SERVICE_ALL_ACCESS);
if (schService == NULL)
{
CloseServiceHandle(schService);
PR_snprintf(ErrorString, sizeof(ErrorString),"Tried to start"
" the service %s: Error %d. Please"
" start the server from the Services Item in the Control Panel",
serviceName, GetLastError());
ds_send_error(ErrorString, 0);
return(DS_SERVER_DOWN);
}
if (!StartService(schService, 0, NULL))
{
CloseServiceHandle(schService);
PR_snprintf(ErrorString, sizeof(ErrorString), "StartService:Could not start "
"the Directory service %s: Error %d. Please restart the server "
"from the Services Item in the Control Panel",
serviceName, GetLastError());
ds_send_error(ErrorString, 0);
return(DS_SERVER_DOWN);
}
CloseServiceHandle(schService);
return(DS_SERVER_UP);
}
void
WaitForServertoStop()
{
HANDLE hServDoneSemaphore;
int result,retries = 0;
char *serviceName = ds_get_server_name();
char *newServiceName;
RETRY:
newServiceName = PR_smprintf("NS_%s", serviceName);
hServDoneSemaphore = CreateSemaphore(
NULL, // security attributes
0, // initial count for semaphore
1, // maximum count for semaphore
newServiceName);
PR_smprintf_free(newServiceName);
if ( hServDoneSemaphore == NULL) {
result = GetLastError();
if (result == ERROR_INVALID_HANDLE) {
if (retries < SERVER_STOP_TIMEOUT) {
retries++;
Sleep(1000);
goto RETRY;
}
} else {
/* We aren't too interested in why the creation failed
* if it is not because of another instance */
return;
}
} // hServDoneSemaphore == NULL
CloseHandle(hServDoneSemaphore);
return;
}
#endif
--- NEW FILE dsalib_util.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if defined( XP_WIN32 )
#include <windows.h>
#include <io.h>
#else /* XP_WIN32 */
# if defined( AIXV4 )
# include <fcntl.h>
# else /* AIXV4 */
# include <sys/fcntl.h>
# endif /* AIXV4 */
#include <dirent.h>
#include <unistd.h>
#include <fcntl.h>
#endif /* XP_WIN3 */
#include "dsalib.h"
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <ctype.h>
#include "nspr.h"
#include "plstr.h"
#define COPY_BUFFER_SIZE 4096
/* This is the separator string to use when outputting key/value pairs
to be read by the non-HTML front end (Java console)
*/
static const char *SEPARATOR = ":"; /* from AdmTask.java */
#define LOGFILEENVVAR "DEBUG_LOGFILE" /* used for logfp */
static int internal_rm_rf(const char *path, DS_RM_RF_ERR_FUNC ds_rm_rf_err_func, void *arg);
/* return a FILE * opened in append mode to the log file
caller must use fclose to close it
*/
static FILE *
get_logfp(void)
{
FILE *logfp = NULL;
char *logfile = getenv(LOGFILEENVVAR);
if (logfile) {
logfp = fopen(logfile, "a");
}
return logfp;
}
DS_EXPORT_SYMBOL int
ds_file_exists(char *filename)
{
struct stat finfo;
if ( filename == NULL )
return 0;
if ( stat(filename, &finfo) == 0 ) /* successful */
return 1;
else
return 0;
}
DS_EXPORT_SYMBOL int
ds_mkdir(char *dir, int mode)
{
if(!ds_file_exists(dir)) {
#ifdef XP_UNIX
if(mkdir(dir, mode) == -1)
#else /* XP_WIN32 */
if(!CreateDirectory(dir, NULL))
#endif /* XP_WIN32 */
return -1;
}
return 0;
}
DS_EXPORT_SYMBOL char *
ds_mkdir_p(char *dir, int mode)
{
static char errmsg[ERR_SIZE];
struct stat fi;
char *t;
#ifdef XP_UNIX
t = dir + 1;
#else /* XP_WIN32 */
t = dir + 3;
#endif /* XP_WIN32 */
while(1) {
t = strchr(t, FILE_PATHSEP);
if(t) *t = '\0';
if(stat(dir, &fi) == -1) {
if(ds_mkdir(dir, mode) == -1) {
PR_snprintf(errmsg, sizeof(errmsg), "mkdir %s failed (%s)", dir, ds_system_errmsg());
return errmsg;
}
}
if(t) *t++ = FILE_PATHSEP;
else break;
}
return NULL;
}
/*
* Given the name of a directory, return a NULL-terminated array of
* the file names contained in that directory. Returns NULL if the directory
* does not exist or an error occurs, and returns an array with a
* single NULL string if the directory exists but is empty. The caller
* is responsible for freeing the returned array of strings.
* File names "." and ".." are not returned.
*/
#if !defined( XP_WIN32 )
DS_EXPORT_SYMBOL char **
ds_get_file_list( char *dir )
{
DIR *dirp;
struct dirent *direntp;
char **ret = NULL;
int nfiles = 0;
if (( dirp = opendir( dir )) == NULL ) {
return NULL;
}
if (( ret = malloc( sizeof( char * ))) == NULL ) {
return NULL;
};
while (( direntp = readdir( dirp )) != NULL ) {
if ( strcmp( direntp->d_name, "." ) &&
strcmp( direntp->d_name, ".." )) {
if (( ret = (char **) realloc( ret,
sizeof( char * ) * ( nfiles + 2 ))) == NULL );
ret[ nfiles ] = strdup( direntp->d_name );
nfiles++;
}
}
(void) closedir( dirp );
ret[ nfiles ] = NULL;
return ret;
}
#else
DS_EXPORT_SYMBOL char **
ds_get_file_list( char *dir )
{
char szWildcardFileSpec[MAX_PATH];
char **ret = NULL;
long hFile;
struct _finddata_t fileinfo;
int nfiles = 0;
if( ( dir == NULL ) || (strlen( dir ) == 0) )
return NULL;
if( ( ret = malloc( sizeof( char * ) ) ) == NULL )
return NULL;
PL_strncpyz(szWildcardFileSpec, dir, sizeof(szWildcardFileSpec));
PL_strcatn(szWildcardFileSpec, sizeof(szWildcardFileSpec), "/*");
hFile = _findfirst( szWildcardFileSpec, &fileinfo);
if( hFile == -1 )
return NULL;
if( ( strcmp( fileinfo.name, "." ) != 0 ) &&
( strcmp( fileinfo.name, ".." ) != 0 ) )
{
ret[ nfiles++ ] = strdup( fileinfo.name );
}
while( _findnext( hFile, &fileinfo ) == 0 )
{
if( ( strcmp( fileinfo.name, "." ) != 0 ) &&
( strcmp( fileinfo.name, ".." ) != 0 ) )
{
if( ( ret = (char **) realloc( ret, sizeof( char * ) * ( nfiles + 2 ) ) ) != NULL )
ret[ nfiles++ ] = strdup( fileinfo.name);
}
}
_findclose( hFile );
ret[ nfiles ] = NULL;
return ret;
}
#endif /* ( XP_WIN32 ) */
DS_EXPORT_SYMBOL time_t
ds_get_mtime(char *filename)
{
struct stat fi;
if ( stat(filename, &fi) )
return 0;
return fi.st_mtime;
}
/*
* Copy files: return is
* 1: success
* 0: failure
* Print errors as needed.
*/
DS_EXPORT_SYMBOL int
ds_cp_file(char *sfile, char *dfile, int mode)
{
#if defined( XP_WIN32 )
return( CopyFile( sfile, dfile, FALSE ) ); /* Copy even if dfile exists */
#else
int sfd, dfd, len;
struct stat fi;
char copy_buffer[COPY_BUFFER_SIZE];
unsigned long read_len;
char error[BIG_LINE];
/* Make sure we're in the right umask */
umask(022);
if( (sfd = open(sfile, O_RDONLY)) == -1) {
PR_snprintf(error, sizeof(error), "Can't open file %s for reading.", sfile);
ds_send_error(error, 1);
return(0);
}
fstat(sfd, &fi);
if (!(S_ISREG(fi.st_mode))) {
PR_snprintf(error, sizeof(error), "File %s is not a regular file.", sfile);
ds_send_error(error, 1);
close(sfd);
return(0);
}
len = fi.st_size;
if( (dfd = open(dfile, O_RDWR | O_CREAT | O_TRUNC, mode)) == -1) {
PR_snprintf(error, sizeof(error), "can't write to file %s", dfile);
ds_send_error(error, 1);
close(sfd);
return(0);
}
while (len) {
read_len = len>COPY_BUFFER_SIZE?COPY_BUFFER_SIZE:len;
if ( (read_len = read(sfd, copy_buffer, read_len)) == -1) {
PR_snprintf(error, sizeof(error), "Error reading file %s for copy.", sfile);
ds_send_error(error, 1);
close(sfd);
close(dfd);
return(0);
}
if ( write(dfd, copy_buffer, read_len) != read_len) {
PR_snprintf(error, sizeof(error), "Error writing file %s for copy.", dfile);
ds_send_error(error, 1);
close(sfd);
close(dfd);
return(0);
}
len -= read_len;
}
close(sfd);
close(dfd);
return(1);
#endif
}
DS_EXPORT_SYMBOL void
ds_unixtodospath(char *szText)
{
if(szText)
{
while(*szText)
{
if( *szText == '/' )
*szText = '\\';
szText++;
}
}
}
/* converts '\' chars to '/' */
DS_EXPORT_SYMBOL void
ds_dostounixpath(char *szText)
{
if(szText)
{
while(*szText)
{
if( *szText == '\\' )
*szText = '/';
szText++;
}
}
}
/* converts ':' chars to ' ' */
DS_EXPORT_SYMBOL void
ds_timetofname(char *szText)
{
if(szText)
{
/* Replace trailing newline */
szText[ strlen( szText ) -1 ] = 0;
while(*szText)
{
if( *szText == ':' ||
*szText == ' ' )
*szText = '_';
szText++;
}
}
}
/* Effects a rename in 2 steps, needed on NT because if the
target of a rename() already exists, the rename() will fail. */
DS_EXPORT_SYMBOL int
ds_saferename(char *szSrc, char *szTarget)
{
#ifdef XP_WIN32
int iRetVal;
char *szTmpFile;
struct stat buf;
#endif
if( !szSrc || !szTarget )
return 1;
#if defined( XP_WIN32 )
szTmpFile = mktemp("slrnXXXXXX" );
if( stat( szTarget, &buf ) == 0 )
{
/* Target file exists */
if( !szTmpFile )
return 1;
if( !ds_cp_file( szTarget, szTmpFile, 0644) )
return( 1 );
unlink( szTarget );
if( (iRetVal = rename( szSrc, szTarget )) != 0 )
{
/* Failed to rename, copy back. */
ds_cp_file( szTmpFile, szTarget, 0644);
}
/* Now remove temp file */
unlink( szTmpFile );
}
else
iRetVal = rename(szSrc, szTarget);
return iRetVal;
#else
return rename(szSrc, szTarget);
#endif
}
DS_EXPORT_SYMBOL char*
ds_encode_all (const char* s)
{
char* r;
size_t l;
size_t i;
if (s == NULL || *s == '\0') {
return strdup ("");
}
l = strlen (s);
r = malloc (l * 3 + 1);
for (i = 0; *s != '\0'; ++s) {
r[i++] = '%';
sprintf (r + i, "%.2X", 0xFF & (unsigned int)*s);
i += 2;
}
r[i] = '\0';
return r;
}
DS_EXPORT_SYMBOL char*
ds_URL_encode (const char* s)
{
char* r;
size_t l;
size_t i;
if (s == NULL || *s == '\0') {
return strdup ("");
}
l = strlen (s) + 1;
r = malloc (l);
for (i = 0; *s != '\0'; ++s) {
if (*s >= 0x20 && *s <= 0x7E && strchr (" <>\"#%{}[]|\\^~`?,;=+\n", *s) == NULL) {
if (l - i <= 1) r = realloc (r, l *= 2);
r[i++] = *s;
} else { /* encode *s */
if (l - i <= 3) r = realloc (r, l *= 2);
r[i++] = '%';
sprintf (r + i, "%.2X", 0xFF & (unsigned int)*s);
i += 2;
}
}
r[i] = '\0';
return r;
}
DS_EXPORT_SYMBOL char*
ds_URL_decode (const char* original)
{
char* r = strdup (original);
char* s;
for (s = r; *s != '\0'; ++s) {
if (*s == '+') {
*s = ' ';
}
else if (*s == '%' && isxdigit(s[1]) && isxdigit(s[2])) {
memmove (s, s+1, 2);
s[2] = '\0';
*s = (char)strtoul (s, NULL, 16);
memmove (s+1, s+3, strlen (s+3) + 1);
}
}
return r;
}
#if !defined( XP_WIN32 )
#include <errno.h> /* errno */
#include <pwd.h> /* getpwnam */
static int saved_uid_valid = 0;
static uid_t saved_uid;
static int saved_gid_valid = 0;
static gid_t saved_gid;
#if defined( HPUX )
#define SETEUID(id) setresuid((uid_t) -1, id, (uid_t) -1)
#else
#define SETEUID(id) seteuid(id)
#endif
#endif
DS_EXPORT_SYMBOL char*
ds_become_localuser_name (char *localuser)
{
#if !defined( XP_WIN32 )
if (localuser != NULL) {
struct passwd* pw = getpwnam (localuser);
if (pw == NULL) {
fprintf (stderr, "getpwnam(%s) == NULL; errno %d",
localuser, errno);
fprintf (stderr, "\n");
fflush (stderr);
} else {
if ( ! saved_uid_valid) saved_uid = geteuid();
if ( ! saved_gid_valid) saved_gid = getegid();
if (setgid (pw->pw_gid) == 0) {
saved_gid_valid = 1;
} else {
fprintf (stderr, "setgid(%li) != 0; errno %d",
(long)pw->pw_gid, errno);
fprintf (stderr, "\n");
fflush (stderr);
}
if (SETEUID (pw->pw_uid) == 0) {
saved_uid_valid = 1;
} else {
fprintf (stderr, "seteuid(%li) != 0; errno %d",
(long)pw->pw_uid, errno);
fprintf (stderr, "\n");
fflush (stderr);
}
}
}
return NULL;
#else
return NULL;
#endif
}
DS_EXPORT_SYMBOL char*
ds_become_localuser (char **ds_config)
{
#if !defined( XP_WIN32 )
char* localuser = ds_get_value (ds_config, ds_get_var_name(DS_LOCALUSER), 0, 1);
if (localuser != NULL) {
char *rv = ds_become_localuser_name(localuser);
free(localuser);
return rv;
}
return NULL;
#else
return NULL;
#endif
}
DS_EXPORT_SYMBOL char*
ds_become_original (char **ds_config)
{
#if !defined( XP_WIN32 )
if (saved_uid_valid) {
if (SETEUID (saved_uid) == 0) {
saved_uid_valid = 0;
} else {
fprintf (stderr, "seteuid(%li) != 0; errno %d<br>n",
(long)saved_uid, errno);
fflush (stderr);
}
}
if (saved_gid_valid) {
if (setgid (saved_gid) == 0) {
saved_gid_valid = 0;
} else {
fprintf (stderr, "setgid(%li) != 0; errno %d<br>\n",
(long)saved_gid, errno);
fflush (stderr);
}
}
return NULL;
#else
return NULL;
#endif
}
/*
* When a path containing a long filename is passed to system(), the call
* fails. Therfore, we need to use the short version of the path, when
* constructing the path to pass to system().
*/
DS_EXPORT_SYMBOL char*
ds_makeshort( char * filepath )
{
#if defined( XP_WIN32 )
char *shortpath = malloc( MAX_PATH );
DWORD dwStatus;
if( shortpath )
{
dwStatus = GetShortPathName( filepath, shortpath, MAX_PATH );
return( shortpath );
}
#endif
return filepath;
}
/* returns 1 if string "searchstring" found in file "filename" */
/* if found, returnstring is allocated and filled with the line */
/* caller should release the memory */
DS_EXPORT_SYMBOL int
ds_search_file(char *filename, char *searchstring, char **returnstring)
{
struct stat finfo;
FILE * sf;
char big_line[BIG_LINE];
if( filename == NULL )
return 0;
if( stat(filename, &finfo) != 0 ) /* successful */
return 0;
if( !(sf = fopen(filename, "r")) )
return 0;
while ( fgets(big_line, BIG_LINE, sf) ) {
if( strstr( big_line, searchstring ) != NULL ) {
*returnstring = (char *)malloc(strlen(big_line) + 1);
if (NULL != *returnstring) {
strcpy(*returnstring, big_line);
}
fclose(sf);
return 1;
}
}
fclose(sf);
return 0;
}
/*
* on linux when running as root, doing something like
* system("date > out.log 2>&1") will fail, because of an
* ambigious redirect. This works for /bin/sh, but not /bin/csh or /bin/tcsh
*
* using this would turn
* system("date > out.log 2>&1");
* into
* system("/bin/sh/ -c \"date > out.log 2>&1\"")
*
*/
DS_EXPORT_SYMBOL void
alter_startup_line(char *startup_line)
{
#if (defined Linux && !defined LINUX2_4)
char temp_startup_line[BIG_LINE+40];
PR_snprintf(temp_startup_line, sizeof(temp_startup_line), "/bin/sh -c \"%s\"", startup_line);
PL_strncpyz(startup_line, temp_startup_line, BIG_LINE);
#else
/* do nothing */
#endif /* Linux */
}
DS_EXPORT_SYMBOL void
ds_send_error(char *errstr, int print_errno)
{
FILE *logfp;
fprintf(stdout, "error%s%s\n", SEPARATOR, errstr);
if (print_errno && errno)
fprintf(stdout, "system_errno%s%d\n", SEPARATOR, errno);
fflush(stdout);
if ((logfp = get_logfp())) {
fprintf(logfp, "error%s%s\n", SEPARATOR, errstr);
if (print_errno && errno)
fprintf(logfp, "system_errno%s%d\n", SEPARATOR, errno);
fclose(logfp);
}
}
DS_EXPORT_SYMBOL void
ds_send_status(char *str)
{
FILE *logfp;
fprintf(stdout, "[%s]: %s\n", ds_get_server_name(), str);
fflush(stdout);
if ((logfp = get_logfp())) {
fprintf(logfp, "[%s]: %s\n", ds_get_server_name(), str);
fclose(logfp);
}
}
/* type and doexit are unused
I'm not sure what type is supposed to be used for
removed the doexit code because we don't want to
exit abruptly anymore, we must exit by returning an
exit code from the return in main()
*/
static void
report_error(int type, char *msg, char *details, int doexit)
{
char error[BIG_LINE*4] = {0};
if (msg)
{
PL_strcatn(error, BIG_LINE*4, msg);
PL_strcatn(error, BIG_LINE*4, SEPARATOR);
}
if (details)
PL_strcatn(error, BIG_LINE*4, details);
ds_send_error(error, 1);
}
DS_EXPORT_SYMBOL void
ds_report_error(int type, char *msg, char *details)
{
/* richm - changed exit flag to 0 - we must not exit
abruptly, we should instead exit by returning a code
as the return value of main - this ensures that callers
are properly notified of the status
*/
report_error(type, msg, details, 0);
}
DS_EXPORT_SYMBOL void
ds_report_warning(int type, char *msg, char *details)
{
report_error(type, msg, details, 0);
}
DS_EXPORT_SYMBOL void
ds_show_message(const char *message)
{
FILE *logfp;
printf("%s\n", message);
fflush(stdout);
if ((logfp = get_logfp())) {
fprintf(logfp, "%s\n", message);
fclose(logfp);
}
return;
}
DS_EXPORT_SYMBOL void
ds_show_key_value(char *key, char *value)
{
FILE *logfp;
printf("%s%s%s\n", key, SEPARATOR, value);
if ((logfp = get_logfp())) {
fprintf(logfp, "%s%s%s\n", key, SEPARATOR, value);
fclose(logfp);
}
return;
}
/* Stolen from the Admin Server dsgw_escape_for_shell */
DS_EXPORT_SYMBOL char *
ds_escape_for_shell( char *s )
{
char *escaped;
char tmpbuf[4];
size_t x,l;
if ( s == NULL ) {
return( s );
}
l = 3 * strlen( s ) + 1;
escaped = malloc( l );
memset( escaped, 0, l );
for ( x = 0; s[x]; x++ ) {
if (( (unsigned char)s[x] & 0x80 ) == 0 ) {
strncat( escaped, &s[x], 1 );
} else {
/* not an ASCII character - escape it */
sprintf( tmpbuf, "\\%x", (unsigned)(((unsigned char)(s[x])) & 0xff) );
strcat( escaped, tmpbuf );
}
}
return( escaped );
}
DS_EXPORT_SYMBOL char *
ds_system_errmsg(void)
{
static char static_error[BUFSIZ];
char *lmsg = 0; /* Local message pointer */
size_t msglen = 0;
int sys_error = 0;
#ifdef XP_WIN32
LPTSTR sysmsg = 0;
#endif
/* Grab the OS error message */
#ifdef XP_WIN32
sys_error = GetLastError();
#else
sys_error = errno;
#endif
#if defined(XP_WIN32)
msglen = FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL,
GetLastError(),
LOCALE_SYSTEM_DEFAULT,
(LPTSTR)&sysmsg,
0,
0);
if (msglen > 0)
lmsg = sysmsg;
SetLastError(0);
#else
lmsg = strerror(errno);
errno = 0;
#endif
if (!lmsg)
static_error[0] = 0;
else
{
/* At this point lmsg points to something. */
int min = 0;
msglen = strlen(lmsg);
min = msglen > BUFSIZ ? BUFSIZ : msglen;
strncpy(static_error, lmsg, min-1);
static_error[min-1] = 0;
}
#ifdef XP_WIN32
/* NT's FormatMessage() dynamically allocated the msg; free it */
if (sysmsg)
LocalFree(sysmsg);
#endif
return static_error;
}
#ifndef MAXPATHLEN
#define MAXPATHLEN 1024
#endif
enum {
DB_DIRECTORY = 0,
DB_LOGDIRECTORY,
DB_CHANGELOGDIRECTORY,
DB_HOME_DIRECTORY
};
static int
is_fullpath(char *path)
{
int len;
if (NULL == path || '\0' == *path)
return 0;
if (FILE_PATHSEP == *path) /* UNIX */
return 1;
len = strlen(path);
if (len > 2)
{
if (':' == path[1] && ('/' == path[2] || '\\' == path[2])) /* Windows */
return 1;
}
return 0;
}
static void
rm_db_dirs(char *fullpath, DS_RM_RF_ERR_FUNC ds_rm_rf_err_func, void *arg)
{
FILE *fp = fopen(fullpath, "r");
char buf[2][MAXPATHLEN];
char *bufp, *nextbufp;
char *retp;
int readit = 0;
if (fp == NULL)
{
ds_rm_rf_err_func(fullpath, "opening the config file", arg);
return;
}
bufp = buf[0]; *bufp = '\0';
nextbufp = buf[1]; *nextbufp = '\0';
while (readit || (retp = fgets(bufp, MAXPATHLEN, fp)) != NULL)
{
int len = strlen(bufp);
int type = -1;
char *p, *q;
if (strstr(bufp, "nsslapd-directory"))
type = DB_DIRECTORY;
else if (strstr(bufp, "nsslapd-db-home-directory"))
type = DB_HOME_DIRECTORY;
else if (strstr(bufp, "nsslapd-db-logdirectory"))
type = DB_LOGDIRECTORY;
else if (strstr(bufp, "nsslapd-changelogdir"))
type = DB_CHANGELOGDIRECTORY;
else
{
readit = 0;
continue;
}
p = bufp + len;
while ((retp = fgets(nextbufp, MAXPATHLEN, fp)) != NULL)
{
int thislen;
if (*nextbufp == ' ')
{
thislen = strlen(nextbufp);
len += thislen;
if (len < MAXPATHLEN)
{
strncpy(p, nextbufp, thislen);
p += thislen;
}
/* else too long as a path. ignore it */
}
else
break;
}
if (retp == NULL) /* done */
break;
p = strchr(bufp, ':');
if (p == NULL)
{
char *tmpp = bufp;
bufp = nextbufp;
nextbufp = tmpp;
readit = 1;
continue;
}
while (*(++p) == ' ') ;
q = p + strlen(p) - 1;
while (*q == ' ' || *q == '\t' || *q == '\n')
q--;
*(q+1) = '\0';
switch (type)
{
case DB_DIRECTORY:
case DB_LOGDIRECTORY:
case DB_CHANGELOGDIRECTORY:
if (is_fullpath(p))
internal_rm_rf(p, ds_rm_rf_err_func, NULL);
break;
case DB_HOME_DIRECTORY:
internal_rm_rf(p, ds_rm_rf_err_func, NULL);
break;
}
}
fclose(fp);
}
static char *
get_dir_from_startslapd(char *loc, char *keyword)
{
char *returnstr = NULL;
char *ptr = NULL;
char *confdir = NULL;
if (ds_search_file(loc, keyword, &returnstr) > 0 && returnstr) {
ptr = strchr(returnstr, '=');
if (NULL != ptr) {
confdir = strdup(++ptr);
}
free(returnstr);
}
return confdir;
}
static char *
get_dir_from_config(char *config_dir, char *config_attr)
{
char *configfile = NULL;
char *returnstr = NULL;
char *ptr = NULL;
char *dir = NULL;
configfile = PR_smprintf("%s%c%s", config_dir, FILE_PATHSEP, DS_CONFIG_FILE);
if (configfile && ds_search_file(configfile, config_attr, &returnstr) > 0
&& returnstr) {
ptr = strchr(returnstr, ':');
if (NULL != ptr) {
while (' ' == *ptr || '\t' == *ptr) ptr++;
dir = strdup(ptr);
}
free(returnstr);
PR_smprintf_free(configfile);
}
return dir;
}
/* this function will recursively remove a directory hierarchy from the file
system, like "rm -rf"
In order to handle errors, the user supplies a callback function. When an
error occurs, the callback function is called with the file or directory name
and the system errno. The callback function should return TRUE if it wants
to continue or FALSE if it wants the remove aborted.
The error callback should use PR_GetError and/or PR_GetOSError to
determine the cause of the failure
*/
/* you could locate db dirs non standard location
we should remove them, as well.
*/
static int
internal_rm_rf(const char *path, DS_RM_RF_ERR_FUNC ds_rm_rf_err_func, void *arg)
{
struct PRFileInfo prfi;
int retval = 0;
if (PR_GetFileInfo(path, &prfi) != PR_SUCCESS) {
if (!ds_rm_rf_err_func(path, "reading directory", arg)) {
return 1;
}
}
if (prfi.type == PR_FILE_DIRECTORY)
{
PRDir *dir;
PRDirEntry *dirent;
if (!(dir = PR_OpenDir(path))) {
if (!ds_rm_rf_err_func(path, "opening directory", arg)) {
return 1;
}
return 0;
}
while ((dirent = PR_ReadDir(dir, PR_SKIP_BOTH))) {
char *fullpath = PR_smprintf("%s%c%s", path, FILE_PATHSEP, dirent->name);
if (PR_GetFileInfo(fullpath, &prfi) != PR_SUCCESS) {
if (!ds_rm_rf_err_func(fullpath, "reading file", arg)) {
PR_smprintf_free(fullpath);
PR_CloseDir(dir);
return 1;
} /* else just continue */
} else if (prfi.type == PR_FILE_DIRECTORY) {
retval = internal_rm_rf(fullpath, ds_rm_rf_err_func, arg);
if (retval) { /* non zero return means stop */
PR_smprintf_free(fullpath);
break;
}
} else {
/* FHS changes the directory structure.
* Config dir is no longer in the instance dir.
* The info should be found in start-slapd,
* therefore get the path from the file here.
*/
if (0 == strcmp(dirent->name, "start-slapd")) {
char *config_dir = ds_get_config_dir();
char *run_dir = ds_get_run_dir();
if (NULL == config_dir || '\0' == *config_dir) {
config_dir = get_dir_from_startslapd(fullpath, DS_CONFIG_DIR);
}
if (NULL == run_dir || '\0' == *run_dir) {
char *ptr = NULL;
run_dir = get_dir_from_startslapd(fullpath, PIDFILE);
ptr = strrchr(run_dir, FILE_PATHSEP);
if (NULL != ptr) {
*ptr = '\0'; /* equiv to dirname */
}
}
if (NULL != run_dir) {
internal_rm_rf(run_dir, ds_rm_rf_err_func, NULL);
free(run_dir);
}
if (NULL != config_dir) {
char *lock_dir = get_dir_from_config(config_dir, DS_CONFIG_LOCKDIR);
char *err_log = get_dir_from_config(config_dir, DS_CONFIG_ERRLOG);
if (NULL != lock_dir) {
internal_rm_rf(lock_dir, ds_rm_rf_err_func, NULL);
free(lock_dir);
}
if (NULL != err_log) {
char *ptr = strrchr(err_log, FILE_PATHSEP);
if (NULL != ptr) {
*ptr = '\0'; /* equiv to 'dirname' */
internal_rm_rf(err_log, ds_rm_rf_err_func, NULL);
}
free(err_log);
}
/* removing db dirs */
rm_db_dirs(config_dir, ds_rm_rf_err_func, arg);
/* removing config dir */
internal_rm_rf(config_dir, ds_rm_rf_err_func, NULL);
}
}
/*
* When the file is the config file,
* check if db dir is in the instance dir or not.
* If db dir exists in the instance dir, it's an old structure.
* Let's clean the old db here, as well.
*/
if (0 == strcmp(dirent->name, DS_CONFIG_FILE)) {
rm_db_dirs(fullpath, ds_rm_rf_err_func, arg);
}
if (PR_Delete(fullpath) != PR_SUCCESS) {
if (!ds_rm_rf_err_func(fullpath, "deleting file", arg)) {
PR_smprintf_free(fullpath);
PR_CloseDir(dir);
return 1;
}
}
}
PR_smprintf_free(fullpath);
}
PR_CloseDir(dir);
if (PR_RmDir(path) != PR_SUCCESS) {
if (!ds_rm_rf_err_func(path, "removing directory", arg)) {
retval = 1;
}
}
}
return retval;
}
static int
default_err_func(const char *path, const char *op, void *arg)
{
PRInt32 errcode = PR_GetError();
char *msg;
const char *errtext;
if (!errcode || (errcode == PR_UNKNOWN_ERROR)) {
errcode = PR_GetOSError();
errtext = ds_system_errmsg();
} else {
errtext = PR_ErrorToString(errcode, PR_LANGUAGE_I_DEFAULT);
}
msg = PR_smprintf("%s %s: error code %d (%s)", op, path, errcode, errtext);
ds_send_error(msg, 0);
PR_smprintf_free(msg);
return 1; /* just continue */
}
/* dir: instance dir, e.g., "$NETSITE_ROOT/slapd-<id>" */
DS_EXPORT_SYMBOL int
ds_rm_rf(const char *dir, DS_RM_RF_ERR_FUNC ds_rm_rf_err_func, void *arg)
{
struct PRFileInfo prfi;
if (!dir) {
ds_send_error("Could not remove NULL directory name", 1);
return 1;
}
if (!ds_rm_rf_err_func) {
ds_rm_rf_err_func = default_err_func;
}
if (PR_GetFileInfo(dir, &prfi) != PR_SUCCESS) {
if (ds_rm_rf_err_func(dir, "reading directory", arg)) {
return 0;
} else {
return 1;
}
}
if (prfi.type != PR_FILE_DIRECTORY) {
char *msg = PR_smprintf("Cannot remove directory %s because it is not a directory", dir);
ds_send_error(msg, 0);
PR_smprintf_free(msg);
return 1;
}
return internal_rm_rf(dir, ds_rm_rf_err_func, arg);
}
DS_EXPORT_SYMBOL int
ds_remove_reg_key(void *base, const char *format, ...)
{
int rc = 0;
#ifdef XP_WIN32
int retries = 3;
HKEY hkey = (HKEY)base;
char *key;
va_list ap;
va_start(ap, format);
key = PR_vsmprintf(format, ap);
va_end(ap);
do {
if (ERROR_SUCCESS != RegDeleteKey(hkey, key)) {
rc = GetLastError();
if (rc == ERROR_BADKEY || rc == ERROR_CANTOPEN ||
rc == ERROR_CANTREAD ||
rc == ERROR_CANTWRITE || rc == ERROR_KEY_DELETED ||
rc == ERROR_ALREADY_EXISTS || rc == ERROR_NO_MORE_FILES) {
rc = 0; /* key already deleted - no error */
} else if ((retries > 1) && (rc == ERROR_IO_PENDING)) {
/* the key is busy - lets wait and try again */
PR_Sleep(PR_SecondsToInterval(3));
retries--;
} else {
char *errmsg = PR_smprintf("Could not remove registry key %s - error %d (%s)",
key, rc, ds_system_errmsg());
ds_send_error(errmsg, 0);
PR_smprintf_free(errmsg);
break; /* no retry, just fail */
}
}
} while (rc && retries);
PR_smprintf_free(key);
#endif
return rc;
}
16 years, 10 months
[Fedora-directory-commits] adminserver/admserv/cgi-ds addindex.c, NONE, 1.1 ds_bak2db.c, NONE, 1.1 ds_db2bak.c, NONE, 1.1 ds_db2ldif.c, NONE, 1.1 ds_ldif2db.c, NONE, 1.1 ds_listdb.c, NONE, 1.1 ds_remove.c, NONE, 1.1 ds_rmdb.c, NONE, 1.1 ds_snmpctrl.c, NONE, 1.1 init_ds_env.c, NONE, 1.1 init_ds_env.h, NONE, 1.1 restart.c, NONE, 1.1 shutdown.c, NONE, 1.1 start.c, NONE, 1.1 vlvindex.c, NONE, 1.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/adminserver/admserv/cgi-ds
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11558/admserv/cgi-ds
Added Files:
addindex.c ds_bak2db.c ds_db2bak.c ds_db2ldif.c ds_ldif2db.c
ds_listdb.c ds_remove.c ds_rmdb.c ds_snmpctrl.c init_ds_env.c
init_ds_env.h restart.c shutdown.c start.c vlvindex.c
Log Message:
Resolves: #237356
Summary: Move DS Admin Code into Admin Server (Comment #54 -- adminserver side)
Description: moving DS task CGIs to the adminserver with libdsa.
--- NEW FILE addindex.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* addindex.c: Creates one or more indexes for specified attributes
*
* Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include <string.h>
#include "nspr.h"
int main(int argc, char *argv[])
{
int status;
char *attributes;
char *attrs;
char **attrList;
int nAttrs;
char *nextAttr = NULL;
char *backendName;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
/*
* Get value of the "attributes" variable.
*/
attributes = get_cgi_var("attributes", NULL, NULL);
if ( (NULL == attributes) || (strlen(attributes) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "attributes", NULL, NULL );
return 1;
}
backendName = get_cgi_var("backendID", NULL, NULL);
if ( (NULL == backendName) || (strlen(backendName) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "backendName", NULL, NULL );
return 1;
}
attrs = strdup( attributes );
if (attrs == NULL) {
rpt_err(DS_MEMORY_ERROR, "Out of memory!", NULL, NULL);
return 1;
}
/* Allocate for worst possible case */
attrList = (char **)malloc(sizeof(*attrList) * (strlen(attrs)+1));
nAttrs = 0;
/* strtok() is not MT safe, but it is okay to call here because this is a command line */
attrList[nAttrs++] = strtok( attrs, " " );
do {
nextAttr = strtok( NULL, " " );
attrList[nAttrs++] = nextAttr;
} while( nextAttr != NULL );
ds_send_status((nAttrs > 1) ? "Creating indexes ..." :
"Creating index ...");
status = ds_addindex( attrList, backendName );
if ( !status ) {
rpt_success((nAttrs > 1) ? "Success! The indexes have been created." :
"Success! The index has been created.");
status = 0;
} else {
char msg[BIG_LINE];
PR_snprintf( msg, sizeof(msg), "[%s] %s", backendName, attributes);
rpt_err( status, msg, NULL, NULL );
status = 1;
}
return status;
}
--- NEW FILE ds_bak2db.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Restores a database.
*
* Anil Bhavnani
* Removed all HTML output for DS 4.0: Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include <string.h>
int main(int argc, char *argv[])
{
int isrunning;
char *filename = NULL;
int status;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
/*
* Get value of the "filename" variable.
*/
filename = get_cgi_var("filename", NULL, NULL);
if ( (NULL == filename) || (strlen(filename) < 1) ) {
fprintf(stdout, "Environment variable filename not defined.\n");
rpt_err( DS_UNDEFINED_VARIABLE, "filename", NULL, NULL );
return 1;
}
/* Check if server is up */
isrunning = ds_get_updown_status();
/* Stop it, if so */
if (isrunning != DS_SERVER_DOWN) {
status = ds_bring_down_server();
if(status != DS_SERVER_DOWN) {
rpt_err( DS_SERVER_MUST_BE_DOWN, filename, NULL, NULL );
return 1;
}
}
ds_send_status("restoring database ...");
status = ds_bak2db(filename);
if ( !status ) {
rpt_success("Success! The database has been restored.");
status = 0;
} else {
rpt_err( status, filename, NULL, NULL );
status = 1;
}
/* Restart the server if we brought it down */
if (isrunning != DS_SERVER_DOWN) {
if(ds_bring_up_server(1) != DS_SERVER_UP) {
ds_send_status( "An error occurred during startup" );
}
}
return status;
}
--- NEW FILE ds_db2bak.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Backs up the database.
*
* Anil Bhavnani
* Removed all HTML output for DS 4.0: Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include <string.h>
#ifdef XP_UNIX
#include <unistd.h>
#endif
#include "nspr.h"
int main(int argc, char *argv[])
{
char *filename = NULL;
int status;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
/*
* Get value of the "filename" variable.
*/
filename = get_cgi_var("filename", NULL, NULL);
if ( (NULL == filename) || (strlen(filename) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "filename", NULL, NULL );
return 1;
}
ds_become_localuser (ds_get_config (DS_REAL_CONFIG));
#define NEWDIR_MODE 0755
/* Attempt to detect up front if file cannot be written */
status = -1;
/* Attempt to create the backup directory */
if ( 0 == ds_mkdir_p(filename, NEWDIR_MODE) ) {
char foo[256];
FILE *f;
/* Now attempt to create a file there (the directory might
already have existed */
PR_snprintf( foo, sizeof(foo), "%s%c%s", filename, FILE_PATHSEP, "foo" );
f = fopen(foo, "w");
if ( NULL != f ) {
status = 0;
fclose( f );
unlink( foo );
}
}
if ( status ) {
rpt_err( DS_CANNOT_CREATE_FILE, filename, NULL, NULL );
return 1;
}
ds_send_status("backing up database ...");
status = ds_db2bak( filename ); /* prints errors as needed */
if ( !status ) {
rpt_success("Success! The database has been backed up.");
return 0;
} else {
rpt_err( status, filename, NULL, NULL );
return 1;
}
}
--- NEW FILE ds_db2ldif.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Converts the database into an ldif file.
*
* Anil Bhavnani
* Removed all HTML output for DS 4.0: Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include <string.h>
#ifdef XP_UNIX
#include <unistd.h>
#endif
int main(int argc, char *argv[])
{
char *filename = NULL;
char *subtree = NULL;
int status;
FILE *f;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
/*
* Get value of the "filename" variable.
*/
filename = get_cgi_var("filename", NULL, NULL);
if ( (NULL == filename) || (strlen(filename) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "filename", NULL, NULL );
return 1;
}
ds_become_localuser (ds_get_config (DS_REAL_CONFIG));
/* Attempt to detect up front if file cannot be written */
f = fopen(filename, "w");
if ( NULL != f ) {
fclose( f );
unlink( filename );
} else {
rpt_err( DS_CANNOT_CREATE_FILE, filename, NULL, NULL );
return 1;
}
/*
* Get value of the "subtree" variable.
*/
subtree = get_cgi_var("subtree", NULL, NULL);
ds_send_status("creating LDIF file ...");
if ( (subtree != NULL) && (*subtree != 0) ) {
char *escaped = ds_escape_for_shell( subtree );
status = ds_db2ldif_subtree(filename, escaped);
free( escaped );
} else {
status = ds_db2ldif(filename); /* prints errors as needed */
}
if ( !status ) {
rpt_success("Success! The database has been exported.");
return 0;
} else {
rpt_err( status, filename, NULL, NULL );
return 1;
}
}
--- NEW FILE ds_ldif2db.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* ds_ldif2db.c: Converts an ldif file into a database.
*
* Anil Bhavnani
* Removed all HTML output for DS 4.0: Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include <string.h>
#ifdef XP_UNIX
#include <unistd.h>
#endif
#ifdef XP_WIN32
#include <io.h>
#endif
int main(int argc, char *argv[])
{
int isrunning;
char *filename = NULL;
char *saveconfig = NULL;
int preserve;
int status;
setbuf(stdout, 0);
#ifdef DEBUG_CGI
freopen("\\tmp\\stderr.out", "w", stderr);
#else
dup2(fileno(stdout), fileno(stderr));
#endif /* DEBUG_CGI */
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
/*
* Get value of the "filename" variable.
*/
filename = get_cgi_var("filename", NULL, NULL);
if ( (NULL == filename) || (strlen(filename) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "filename", NULL, NULL );
return 1;
}
#ifdef DEBUG_CGI
fprintf(stderr, "filename=%s\n", filename);
#endif /* DEBUG_CGI */
/*
* Get value of the "saveconfig" variable.
*/
saveconfig = get_cgi_var("saveconfig", NULL, NULL);
preserve = ( (saveconfig == NULL) || !(strcmp(saveconfig,"true")) );
#ifdef DEBUG_CGI
fprintf(stderr, "preserve=%d\n", preserve);
#endif /* DEBUG_CGI */
/* Check if server is up */
isrunning = ds_get_updown_status();
#ifdef DEBUG_CGI
fprintf(stderr, "isrunning=%d\n", isrunning);
#endif /* DEBUG_CGI */
/* Stop it, if so */
if (isrunning != DS_SERVER_DOWN) {
status = ds_bring_down_server();
#ifdef DEBUG_CGI
fprintf(stderr, "status=%d\n", status);
#endif /* DEBUG_CGI */
if(status != DS_SERVER_DOWN) {
rpt_err( DS_SERVER_MUST_BE_DOWN, filename, NULL, NULL );
return 1;
}
}
ds_send_status("creating database ...");
if ( preserve )
status = ds_ldif2db_preserve(filename); /* prints errors as needed */
else
status = ds_ldif2db(filename); /* prints errors as needed */
if ( !status ) {
rpt_success("Success! The database has been imported.");
status = 0;
} else {
rpt_err( status, filename, NULL, NULL );
status = 1;
}
/* Restart the server if we brought it down */
if (isrunning != DS_SERVER_DOWN) {
int retval;
if((retval=ds_bring_up_server(1)) != DS_SERVER_UP) {
ds_send_status( "An error occurred during startup" );
}
}
return status;
}
--- NEW FILE ds_listdb.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* List the database backup directories.
* No HTML - this is for DS 4.0.
*
* Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "dsalib.h"
int main(int argc, char *argv[], char *envp[])
{
char **bak_dirs;
ds_become_localuser (ds_get_config (DS_REAL_CONFIG));
/* Tell the receiver we are about to start sending data */
fprintf(stdout, "\n");
bak_dirs = ds_get_bak_dirs();
if ( bak_dirs != NULL ) /* no error */ {
char **cur_file = bak_dirs;
while ( *cur_file != NULL ) {
fprintf(stdout, "%s\n", *cur_file);
cur_file++;
}
}
ds_become_original();
return 0;
}
--- NEW FILE ds_remove.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Remove the server
*
* Prasanta Behera
*/
#ifdef XP_WIN32
#include <windows.h>
#include <io.h>
#include "regparms.h"
extern BOOL DeleteServer(LPCSTR pszServiceId);
#endif
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#ifdef XP_UNIX
#include <sys/errno.h>
#include <dirent.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#else
#endif /* WIN32? */
#include <sys/stat.h>
#include "dsalib.h"
#include "init_ds_env.h"
#include "nspr.h"
/* this will be set to 1 if we need to retry the
rm -rf of the instance directory again */
static int try_rm_rf_again = 0;
static int
rm_rf_err_func(const char *path, const char *op, void *arg)
{
PRInt32 errcode = PR_GetError();
char *msg;
const char *errtext;
if (!errcode || (errcode == PR_UNKNOWN_ERROR)) {
errcode = PR_GetOSError();
errtext = ds_system_errmsg();
} else {
errtext = PR_ErrorToString(errcode, PR_LANGUAGE_I_DEFAULT);
}
/* ignore "file or directory already removed" errors */
if (errcode != PR_FILE_NOT_FOUND_ERROR) {
msg = PR_smprintf("%s %s: error code %d (%s)", op, path, errcode, errtext);
ds_send_error(msg, 0);
PR_smprintf_free(msg);
}
/* On Windows and HPUX, if the file/directory to remove is opened by another
application, it cannot be removed and will generate a busy error
This usually happens when we attempt to stop slapd then remove the
instance directory, but for some reason the process still has some
open files
In this case, we need to wait for some period of time then attempt to
remove the instance directory again
*/
if (errcode == PR_FILE_IS_BUSY_ERROR) {
try_rm_rf_again = 1;
return 0; /* just abort the operation */
}
#ifdef XP_WIN32
/* on windows, err 145 means dir not empty
145 The directory is not empty. ERROR_DIR_NOT_EMPTY
If there was a busy file, it wasn't able to be
removed, so when we go to remove the directory, it
won't be empty
*/
if (errcode == ERROR_DIR_NOT_EMPTY) {
if (try_rm_rf_again) {
return 0; /* don't continue */
}
}
#else /* unix */
if (errcode == EEXIST) { /* not empty */
if (try_rm_rf_again) {
return 0; /* don't continue */
}
}
#endif
return 1; /* just continue */
}
int main(int argc, char *argv[])
{
int status = -1;
char *servername;
char *installroot;
int isRunning;
#ifndef __LP64__
#if defined(__hpux) && !defined(__ia64)
_main();
#endif
#endif
#ifdef XP_WIN32
if ( getenv("DEBUG_DSINST") )
DebugBreak();
#endif
/* case 1: being called as program -f inffile */
if (argc > 2 && argv[1][0] == '-' && argv[1][1] == 'f')
{
FILE *infFile = fopen(argv[2], "r");
if (!infFile)
{
ds_report_error (DS_INCORRECT_USAGE, argv[2],
"This file could not be opened. A valid file must be given.");
status = 1;
return status;
}
else
fclose(infFile);
#if 0
ds_uninst_set_cgi_env(argv[2]);
#else
fprintf(stdout, "Call Uninstall\n");
#endif
} else if (getenv("REQUEST_METHOD")) { /* case 2: called as a CGI */
fprintf(stdout, "Content-type: text/html\n\n");
fflush(stdout);
} else { /* case 3: run from the command line */
/* when being run from the command line, we require many command line arguments */
/* we need to do 2 or three things:
1 - stop the server and remove the server instance directory
2 - remove the server's information from the config ds
3 - On Windows, remove the registry information
We require the instance name as an argument. We also need the following:
For 1, we need the server root
For 2, we need the config ds host, port, admin domain, admin dn, admin password
For 3, just the instance name
There are two other arguments that are optional. -force will ignore errors and just keep
going. On Windows, -allreg will clean up all known registry information for all instances
of DS on this machine
*/
}
if ( init_ds_env() ) {
return 1;
}
/*
* Get the server path to delete.
* serverpath = /<server_root>/slapd-<id>
*/
if (!(servername = get_cgi_var("InstanceName", NULL, NULL)))
servername = ds_get_server_name();
/* Check again if the serevr is down or not */
if((isRunning = ds_get_updown_status()) == DS_SERVER_UP) {
if ((status = ds_bring_down_server()) != DS_SERVER_DOWN) {
char buf[1024];
PR_snprintf(buf, sizeof(buf), "Could not stop server: error %d", status);
ds_report_error (DS_GENERAL_FAILURE, servername, buf);
return 1;
}
}
if (servername) {
char line[1024];
int busy_retries = 3; /* if busy, retry this many times */
installroot = ds_get_install_root();
/* We may get busy errors if files are in use when we try
to remove them, so if that happens, sleep for 30 seconds
and try again */
status = ds_rm_rf(installroot, rm_rf_err_func, NULL);
while (status && try_rm_rf_again && busy_retries) {
PR_snprintf(line, sizeof(line), "Some files or directories in %s are still in use. Will sleep for 30 seconds and try again.",
installroot);
ds_show_message(line);
PR_Sleep(PR_SecondsToInterval(30));
try_rm_rf_again = 0;
--busy_retries;
status = ds_rm_rf(installroot, rm_rf_err_func, NULL);
}
if (status) {
PR_snprintf(line, sizeof(line), "Could not remove %s. Please check log messages and try again.",
installroot);
ds_send_error(line, 0);
}
}
#ifdef XP_WIN32
if (servername) {
status += ds_remove_reg_key(HKEY_LOCAL_MACHINE, "%s\\%s\\%s\\%s", KEY_SOFTWARE_NETSCAPE,
DS_NAME_SHORT, DS_VERSION, servername);
/* also try to remove version key in case this is the last instance */
status += ds_remove_reg_key(HKEY_LOCAL_MACHINE, "%s\\%s\\%s", KEY_SOFTWARE_NETSCAPE,
DS_NAME_SHORT, DS_VERSION);
/* also try to remove product key in case this is the last instance */
status += ds_remove_reg_key(HKEY_LOCAL_MACHINE, "%s\\%s", KEY_SOFTWARE_NETSCAPE,
DS_NAME_SHORT);
/* also need to remove service */
if (!DeleteServer(servername)) {
status += 1;
}
/* Remove Event Log Key */
status += ds_remove_reg_key(HKEY_LOCAL_MACHINE, "%s\\%s\\%s", KEY_SERVICES, KEY_EVENTLOG_APP, servername);
}
#endif
if (status == 0) {
char buf[1024];
PR_snprintf(buf, sizeof(buf), "Server %s was successfully removed", servername);
ds_show_message(buf);
rpt_success("");
} else {
char buf[1024];
PR_snprintf(buf, sizeof(buf), "Could not remove server %s", servername);
ds_send_error(buf, 0);
}
return status;
}
--- NEW FILE ds_rmdb.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Delete backed-up database files.
*
* Anil Bhavnani
* Removed all HTML output for DS 4.0: Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include <string.h>
#ifdef XP_UNIX
#include <unistd.h>
#endif
#ifdef XP_WIN32
#include <direct.h>
#endif
#include "nspr.h"
#ifndef MAXPATHLEN
#define MAXPATHLEN 1024
#endif
int main(int argc, char *argv[], char *envp[])
{
char *del_file = NULL;
char **bak_files;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
ds_become_localuser (ds_get_config (DS_REAL_CONFIG));
/*
* Get value of the "deletefile" variable.
*/
del_file = get_cgi_var("deletefile", NULL, NULL);
if ( (NULL == del_file) || (strlen(del_file) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "deletefile", NULL, NULL );
return 1;
}
bak_files = ds_get_file_list( del_file );
if ( bak_files == NULL ) {
rpt_err( DS_NO_SUCH_FILE, del_file, NULL, NULL );
return 1;
} else {
int j;
char buf[ MAXPATHLEN ];
for ( j = 0; bak_files[ j ] != NULL; j++ ) {
PR_snprintf( buf, sizeof(buf), "%s/%s", del_file, bak_files[ j ]);
if ( unlink(buf) != 0 ) {
rpt_err( DS_CANNOT_DELETE_FILE, buf, NULL, NULL );
return 1;
}
}
if ( rmdir( del_file ) < 0 ) {
rpt_err( DS_CANNOT_DELETE_FILE, del_file, NULL, NULL );
return 1;
}
}
rpt_success("Success! Deleted directory.");
return 0;
}
--- NEW FILE ds_snmpctrl.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* snmpctrl.c - start/stop/restart LDAP-based SNMP subagent
*
* Steve Ross -- 08/12/97
*
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include "nspr.h"
#if !defined(_WIN32)
#include <signal.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <stdlib.h>
#else
#include <windows.h>
#endif
#define SUBAGT_PATH "bin/slapd/server"
#define SUBAGT_NAME "ns-ldapagt"
#define START 1
#define STOP 2
#define RESTART 3
#define NSLDAPAGT_PID "NSLDAPAGT.LK"
#ifdef __cplusplus
extern "C" {
#endif
int nsldapagt_is_running(void);
int nsldapagt_shutdown(void);
int nsldapagt_start(void);
int nsldapagt_restart(void);
#ifdef __cplusplus
}
#endif
int main(int argc, char *argv[])
{
char *action_type = NULL;
int status = 1;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
action_type = get_cgi_var("ACTION", "Missing Command",
"Need to specify Start, Stop, or Restart");
if (!action_type)
return 1;
if (!strcmp(action_type, "START")) {
status = nsldapagt_start();
} else if (!strcmp(action_type, "STOP")) {
status = nsldapagt_shutdown();
} else if (!strcmp(action_type, "RESTART")) {
status = nsldapagt_restart();
} else {
status = DS_UNKNOWN_SNMP_COMMAND;
}
if ( !status ) {
rpt_success("Success!");
return 0;
} else {
rpt_err( status, action_type, NULL, NULL );
return 1;
}
}
#if !defined(_WIN32)
int
get_nsldapagt_pid(pid_t *pid)
{
char *SLAPD_ROOT;
char path[PATH_MAX];
FILE *fp;
*pid = -1;
SLAPD_ROOT = ds_get_install_root();
PR_snprintf(path, sizeof(path), "%s/logs/%s", SLAPD_ROOT, NSLDAPAGT_PID);
if (!ds_file_exists(path)) {
return(-1);
}
if ((fp = fopen(path, "r")) != (FILE *) NULL) {
if ((fscanf(fp, "%d\n", (int *) pid)) != -1) {
(void) fclose(fp);
return(0);
}
}
(void) fclose(fp);
return(-1);
}
#endif
#if defined(_WIN32)
BOOL isServiceRunning(LPCTSTR szServiceId)
{
BOOL bReturn = FALSE;
DWORD dwError = 0;
SC_HANDLE schService = NULL;
SC_HANDLE schSCManager = NULL;
SERVICE_STATUS lpss;
if((schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS)))
{
if((schService = OpenService(schSCManager,
szServiceId,
SERVICE_ALL_ACCESS)))
{
bReturn = ControlService(schService, SERVICE_CONTROL_INTERROGATE , &lpss);
if(SERVICE_RUNNING == lpss.dwCurrentState)
{
bReturn = TRUE;
}
CloseServiceHandle(schService);
}
dwError = GetLastError();
CloseServiceHandle(schSCManager);
}
return(bReturn);
}
#endif
/*
* This routine returns:
* 0 if nsldapagt is NOT running
* 1 if nsldapagt is actually running
*/
int
nsldapagt_is_running()
{
#if defined(_WIN32)
if (FALSE == isServiceRunning("SNMP") )
{
return(0);
}
#else
pid_t pid;
if (get_nsldapagt_pid(&pid) != 0) {
return(0);
}
if (kill(pid, 0) == -1) {
return(0);
}
#endif
return(1);
}
#if !defined(_WIN32)
/*
* This routine returns:
* 0 if magt is NOT running
* 1 if magt is actually running
*
* The run state is determined whether one can successfully bind to the
* smux port.
*
* this is for UNIX only
*/
int
smux_master_is_running()
{
struct servent *pse;
struct protoent *ppe;
struct sockaddr_in sin;
int s;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
if ((pse = getservbyname("smux", "tcp"))) {
sin.sin_port = ntohs(pse->s_port);
} else {
sin.sin_port = 199;
}
if ((ppe = getprotobyname("tcp")) == 0) {
return(0);
}
if ((s = socket(AF_INET, SOCK_STREAM, ppe->p_proto)) < 0) {
return(0);
}
/* bind expects port number to be in network order
we should do this for all platforms, not just OSF. */
sin.sin_port = htons(sin.sin_port);
if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
close(s);
return(1);
} else {
}
close(s);
return(0);
}
#endif
int
nsldapagt_start()
{
if (nsldapagt_is_running()) {
return(0);
}
#if defined(_WIN32)
/* NT version -- just try to start the SNMP service */
/* Bug 612322: redirecting the output to null device */
system("net start SNMP > nul");
#else
/*
* Check if smux master agent is running before firing off the subagent!
*/
if (!smux_master_is_running()) {
return(-1);
} else {
char *NETSITE_ROOT = getenv("NETSITE_ROOT");
char *SLAPD_ROOT = ds_get_install_root();
char command[1024];
PR_snprintf(command, sizeof(command), "cd %s/%s; ./%s -d %s", NETSITE_ROOT, SUBAGT_PATH,
SUBAGT_NAME, SLAPD_ROOT);
(void) system(command);
sleep(2);
}
#endif
if (!nsldapagt_is_running()) {
return(-1);
}
return(0);
}
int
nsldapagt_shutdown()
{
if (!nsldapagt_is_running()) {
rpt_success("NOT_RUNNING");
exit(0);
} else {
int status = -1;
#if defined(_WIN32)
/* NT version -- just try to stop the SNMP service */
/* Bug 612322: redirecting the output to null device */
status = system("net stop SNMP > nul");
#else
/* UNIX version */
pid_t pid;
if (get_nsldapagt_pid(&pid) == 0)
{
if (kill(pid, SIGTERM) == 0)
{
sleep(2);
if (!nsldapagt_is_running())
{
status = 0;
}
}
}
#endif
return(status);
}
return(0);
}
int
nsldapagt_restart()
{
int status;
if ( (status = nsldapagt_shutdown()) != 0 )
return status;
else
return nsldapagt_start();
}
--- NEW FILE init_ds_env.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Set up environment for CGIs.
*
* Rob Weltman
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "libadminutil/distadm.h"
#include "init_ds_env.h"
#include "dsalib.h"
#include "prprf.h"
int init_ds_env()
{
char *m = getenv("REQUEST_METHOD");
char *qs = NULL;
int proceed = 0;
(void)ADMUTIL_Init();
if ( m != NULL ) {
if( !strcmp(m, "GET") ) {
qs = GET_QUERY_STRING();
if ( qs && *qs ) {
get_begin(qs);
}
proceed = 1;
} else if(!strcmp(m, "POST")) {
if (post_begin(stdin)) {
proceed = 0;
} else {
proceed = 1;
}
}
}
if(!proceed) {
char msg[2000];
PR_snprintf(msg, sizeof(msg), "ErrorString: REQUEST_METHOD=%s,"
"QUERY_STRING=%s\n",
(m == NULL) ? "<undefined>" : m,
(qs == NULL) ? "<undefined>" : qs);
rpt_err( GENERAL_FAILURE,
msg,
"",
"" );
return 1;
}
return 0;
}
--- NEW FILE init_ds_env.h ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* Set up environment for CGIs.
*
* Rob Weltman
*/
extern int init_ds_env();
--- NEW FILE restart.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* restart.c: Stops and the starts up the server.
*
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#ifdef XP_WIN32
#define sleep(sec) Sleep(sec)
#endif
int main(int argc, char *argv[])
{
int status = -1;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
if (DS_SERVER_UP == ds_get_updown_status()) {
status = ds_bring_down_server();
if(status != DS_SERVER_DOWN) {
rpt_err( status, "", NULL, NULL );
return 1;
}
}
status = ds_bring_up_server(1);
if(status == DS_SERVER_UP) {
rpt_success("Success! The server has been restarted.");
return 0;
} else {
rpt_err( status, "", NULL, NULL );
return 1;
}
}
--- NEW FILE shutdown.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* shutdown.c: Kills the server.
*
* DS changes: Anil Bhavnani
* Removed all HTML output for DS 4.0: Rob Weltman
* Mike McCool
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
int main(int argc, char *argv[])
{
int status = -1;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
status = ds_bring_down_server();
if(status == DS_SERVER_DOWN) {
rpt_success("Success! The server has been shut down.");
return 0;
} else {
rpt_err( status, "", NULL, NULL );
return 1;
}
}
--- NEW FILE start.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* start.c: Starts up the server.
*
* DS changes: Anil Bhavnani
* Removed all HTML output for DS 4.0: Rob Weltman
* Mike McCool
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
int main(int argc, char *argv[])
{
int status = -1;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 0;
status = ds_bring_up_server(1);
if(status == DS_SERVER_UP) {
rpt_success("Success! The server has been started.");
return 0;
} else {
rpt_err( status, "", NULL, NULL );
return 1;
}
}
--- NEW FILE vlvindex.c ---
/** BEGIN COPYRIGHT BLOCK
* This Program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; version 2 of the License.
*
* This Program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this Program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place, Suite 330, Boston, MA 02111-1307 USA.
*
* In addition, as a special exception, Red Hat, Inc. gives You the additional
* right to link the code of this Program with code not covered under the GNU
* General Public License ("Non-GPL Code") and to distribute linked combinations
* including the two, subject to the limitations in this paragraph. Non-GPL Code
* permitted under this exception must only link to the code of this Program
* through those well defined interfaces identified in the file named EXCEPTION
* found in the source code files (the "Approved Interfaces"). The files of
* Non-GPL Code may instantiate templates or use macros or inline functions from
* the Approved Interfaces without causing the resulting work to be covered by
* the GNU General Public License. Only Red Hat, Inc. may make changes or
* additions to the list of Approved Interfaces. You must obey the GNU General
* Public License in all respects for all of the Program code and other code used
* in conjunction with the Program except the Non-GPL Code covered by this
* exception. If you modify this file, you may extend this exception to your
* version of the file, but you are not obligated to do so. If you do not wish to
* provide this exception without modification, you must delete this exception
* statement from your version and license this file solely under the GPL without
* exception.
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
* Copyright (C) 2005 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
/*
* vlvindex.c: Creates a VLV index for a given search
*
* Rob Weltman
*/
#include <stdio.h>
#include <stdlib.h>
#include "libadminutil/admutil.h"
#include "dsalib.h"
#include "init_ds_env.h"
#include <string.h>
int main(int argc, char *argv[])
{
int status;
char *backendNames = NULL;
char *attributes = NULL;
char *tmparg = NULL;
char **attrList = NULL;
char **backendList = NULL;
int nItem = 0;
char *nextItem = NULL;
int i=0;
fprintf(stdout, "Content-type: text/html\n\n");
if ( init_ds_env() )
return 1;
ds_send_status("Creating vlv index ...");
/*
* Get var's value
*/
backendNames = get_cgi_var("backendID", NULL, NULL);
if ( (NULL == backendNames) || (strlen(backendNames) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "backendID", NULL, NULL );
return 1;
}
attributes = get_cgi_var("vlvTags", NULL, NULL);
if ( (NULL == attributes) || (strlen(attributes) < 1) ) {
rpt_err( DS_UNDEFINED_VARIABLE, "vlvTags", NULL, NULL );
return 1;
}
tmparg = strdup( attributes );
nItem = 0;
for(i=0 ; i < strlen(attributes) ; i++) {
if ( tmparg[i] == ';' ) nItem++;
}
/* Allocate for worst possible case */
attrList = (char **)malloc(sizeof(*attrList) * (nItem + 2) );
nItem = 0;
/* strtok() is not MT safe, but it is okay to call here because this is a command line */
attrList[nItem++] = strtok( tmparg, ";" );
do {
nextItem = strtok( NULL, ";" );
attrList[nItem++] = nextItem;
} while( nextItem != NULL );
tmparg = strdup( backendNames );
nItem = 0;
for(i=0;i<strlen(tmparg); i++) {
if ( tmparg[i] == ';' ) nItem++;
}
backendList = (char **)malloc(sizeof(*backendList) * nItem + 2);
nItem = 0;
backendList[nItem++] = strtok( tmparg, ";" );
do {
nextItem = strtok( NULL, ";" );
backendList[nItem++] = nextItem;
} while( nextItem != NULL );
status = ds_vlvindex(backendList, attrList);
if ( !status ) {
rpt_success("Success! The index has been created.");
status = 0;
} else {
rpt_err( status, backendList[0], NULL, NULL );
status = 1;
}
return status;
}
16 years, 10 months