summaryrefslogtreecommitdiffstats
path: root/server.c
diff options
context:
space:
mode:
authorSimon Rettberg2014-03-19 14:14:06 +0100
committerSimon Rettberg2014-03-19 14:14:06 +0100
commit87a5f72b2eef3beb10ad50bfbd2a131bd278e67b (patch)
tree4e75715308afcd6211f304ee198eea735416a5d9 /server.c
parent(Forgot commit) Add fmt_ldapbindrequeststring that takes struct string as arg... (diff)
downloadldadp-87a5f72b2eef3beb10ad50bfbd2a131bd278e67b.tar.gz
ldadp-87a5f72b2eef3beb10ad50bfbd2a131bd278e67b.tar.xz
ldadp-87a5f72b2eef3beb10ad50bfbd2a131bd278e67b.zip
Work
Diffstat (limited to 'server.c')
-rw-r--r--server.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/server.c b/server.c
index 2c3aebe..13202f8 100644
--- a/server.c
+++ b/server.c
@@ -59,6 +59,27 @@ void server_setBase(const char *server, const char *base)
entry->base[entry->baseLen] = '\0';
}
+void server_setHomeTemplate(const char *server, const char *hometemplate)
+{
+ server_t *entry = server_create(server);
+ if (entry == NULL) return;
+ if (snprintf(entry->homeTemplate, MOUNTLEN, "%s", hometemplate) >= MOUNTLEN) printf("Warning: Home Template for %s is too long.\n", server);
+ // TODO: Better template system. Using a format string is too lazy
+ BOOL b = FALSE;
+ char *s = entry->homeTemplate;
+ int count = 0;
+ while (*s) {
+ if (b) {
+ if (*s != '%') count++;
+ b = FALSE;
+ } else if (*s == '%') b = TRUE;
+ if (count > 5) *s = '_';
+ if (*s == '\\') *s = '/';
+ s++;
+ }
+ if (count > 5) printf("WARNING: Too many '%%' in Home Template for %s. Don't forget to replace literal '%%' with '%%%%'\n", server);
+}
+
void server_initServers()
{
int i;