Okay, I guess I'll simply post the diff patch here for anyone who needs it.
--- nsmemcache.c.4.5.1 2010-08-30 06:56:06.000000000 +0800 +++ nsmemcache.c 2010-08-30 11:19:20.000000000 +0800 @@ -50,6 +50,7 @@ #define MC_SERVER_DELETED 2 /* Server is not used anymore */ int Ns_ModuleVersion = 1; +int bufsize = BUFSIZE; typedef struct mc_conn_t { @@ -184,6 +185,18 @@ key = Ns_SetValue(set, i); mc_server_add(mc, mc_server_create(key, 0, 0)); Ns_Log(Notice, "nsmemcache: added %s", key); + } else if (!strcasecmp(key, "bufsize")) { + key = Ns_SetValue(set, i); + + if (key != NULL) { + + if(sscanf(key,"%d",&bufsize) == -1) { + //Reset the value to default buffer size. + bufsize = BUFSIZE; + } else { + Ns_Log(Notice,"nsmemcache: setting buffer size to %d", bufsize); + } + } } } // For AOL 4.0.10 @@ -664,7 +677,7 @@ return -1; } - rc = mc_conn_read(conn, BUFSIZE, 1, &line); + rc = mc_conn_read(conn, bufsize, 1, &line); if (rc <= 0) { mc_conn_free(conn); mc_server_dead(mc, ms); @@ -725,7 +738,7 @@ /* VALUE <key> <flags> <bytes> [cas unique]\r\n<data block>\r\nEND \r\n */ - rc = mc_conn_read(conn, BUFSIZE, 1, &line); + rc = mc_conn_read(conn, bufsize, 1, &line); if (rc <= 0 || line == NULL) { mc_conn_free(conn); mc_server_dead(mc, ms); @@ -817,7 +830,7 @@ return -1; } - rc = mc_conn_read(conn, BUFSIZE, 1, &line); + rc = mc_conn_read(conn, bufsize, 1, &line); if (rc <= 0) { mc_conn_free(conn); mc_server_dead(mc, ms); @@ -876,7 +889,7 @@ /* <value>\r\n */ - rc = mc_conn_read(conn, BUFSIZE, 1, &line); + rc = mc_conn_read(conn, bufsize, 1, &line); if (rc <= 0) { mc_conn_free(conn); mc_server_dead(mc, ms); @@ -929,7 +942,7 @@ /* VERSION <version>\r\n */ - rc = mc_conn_read(conn, BUFSIZE, 1, &line); + rc = mc_conn_read(conn, bufsize, 1, &line); if (rc <= 0) { mc_conn_free(conn); mc_server_dead(mc, ms); @@ -994,7 +1007,7 @@ return -1; } - rc = mc_conn_read(conn, BUFSIZE, 1, &line); + rc = mc_conn_read(conn, bufsize, 1, &line); if (rc <= 0) { mc_conn_free(conn); mc_server_dead(mc, ms); @@ -1048,10 +1061,10 @@ // Read trailing \r\n and END\r\n if (strncmp(conn->ds.string, "\r\n", 2)) { - rc = mc_conn_read(conn, BUFSIZE, 0, &line); + rc = mc_conn_read(conn, bufsize, 0, &line); } if (strstr(conn->ds.string, "END\r\n") == NULL) { - rc = mc_conn_read(conn, BUFSIZE, 0, &line); + rc = mc_conn_read(conn, bufsize, 0, &line); } mc_conn_put(conn); return 1; On Aug 31, 5:43 am, Sep Ng <thejackschm...@gmail.com> wrote: > Hi, > > I've been trying to use nsmemcache and integrate it with aolserver but > I noticed that there's this bug where if you retrieve data over 2kb, > the data gets truncated. After inspection, it looks like it's because > the buffer size allocated when reading the contents via Ns_SockRecv is > not adequate. I wonder if anyone has come across this partcular > issue. > > I modified nsmemcache to accept a parameter setting from aolserver to > define a custom buffer size. I wasn't entirely sure where the code > submissions were. I'd be more than happy to send the changes > upstream, hope someone can point me the way because the contributing > patches section on the aolserver website was kind of confusing. > > -- > AOLserver -http://www.aolserver.com/ > > To Remove yourself from this list, simply send an email to > <lists...@listserv.aol.com> with the > body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: > field of your email blank. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <lists...@listserv.aol.com> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.