From ec7f4cfda2c2708ed7ec3522600c95bd32fc43ea Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Mon, 2 Jun 2008 14:22:47 -0400 Subject: - initial support for returning larger entries over tcp than we can over udp - make the tcp sizes tunable --- src/format.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src/format.c') diff --git a/src/format.c b/src/format.c index f738c44..6138207 100644 --- a/src/format.c +++ b/src/format.c @@ -1042,19 +1042,28 @@ static char * format_format(struct plugin_state *state, Slapi_PBlock *pb, Slapi_Entry *e, const char *fmt, char ***visited_ndns) { - char buf[YPMAXRECORD], *tmp; + char *buf, *tmp, *ret; const char *match, *fmtstart, *fmtend; - unsigned int i, j; + unsigned int i, j, buflen; int exp_len; - i = format_expand(state, pb, e, fmt, buf, sizeof(buf), - visited_ndns, TRUE); - if (i < sizeof(buf)) { + buflen = state->max_value_size; + buf = malloc(buflen); + if (buf == NULL) { + return NULL; + } + + i = format_expand(state, pb, e, fmt, buf, buflen, visited_ndns, TRUE); + if (i < buflen) { buf[i] = '\0'; - return strdup(buf); + ret = strdup(buf); } else { - return NULL; + ret = NULL; } + + free(buf); + + return ret; } char * -- cgit