diff options
| author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-06-02 14:22:47 -0400 |
|---|---|---|
| committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-06-02 14:22:47 -0400 |
| commit | ec7f4cfda2c2708ed7ec3522600c95bd32fc43ea (patch) | |
| tree | 1b3cf1471d0feacee35bfbe2bae72b2ead3dba36 /src/format.c | |
| parent | c9ad0149295a99d832c39e5d8ef43294d06e39ee (diff) | |
| download | slapi-nis-ec7f4cfda2c2708ed7ec3522600c95bd32fc43ea.tar.gz slapi-nis-ec7f4cfda2c2708ed7ec3522600c95bd32fc43ea.tar.xz slapi-nis-ec7f4cfda2c2708ed7ec3522600c95bd32fc43ea.zip | |
- initial support for returning larger entries over tcp than we can over udp
- make the tcp sizes tunable
Diffstat (limited to 'src/format.c')
| -rw-r--r-- | src/format.c | 23 |
1 files changed, 16 insertions, 7 deletions
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 * |
