summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Delacour <gui@iroqwa.org>2015-12-07 00:53:14 +0100
committerdormando <dormando@rydia.net>2016-05-28 21:53:28 -0700
commit61269bbd499f430b081a04ff2173bbb2e6e57cd7 (patch)
tree17e0b167ecd6c1ac7ac4181ab1f08fb64724ac34
parentadb6a664a62989e5fd4585bb48be5df34a18bf31 (diff)
downloadmemcached-61269bbd499f430b081a04ff2173bbb2e6e57cd7.tar.gz
Define IOV_MAX for GNU and replace PATH_MAX by dynamic alloc
-rw-r--r--memcached.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/memcached.c b/memcached.c
index ff1af50..0bdaf3c 100644
--- a/memcached.c
+++ b/memcached.c
@@ -50,7 +50,7 @@
/* FreeBSD 4.x doesn't have IOV_MAX exposed. */
#ifndef IOV_MAX
-#if defined(__FreeBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__GNU__)
# define IOV_MAX 1024
#endif
#endif
@@ -5712,12 +5712,15 @@ int main (int argc, char **argv) {
/* create the listening socket, bind it, and init */
if (settings.socketpath == NULL) {
const char *portnumber_filename = getenv("MEMCACHED_PORT_FILENAME");
- char temp_portnumber_filename[PATH_MAX];
+ char *temp_portnumber_filename = NULL;
+ size_t len;
FILE *portnumber_file = NULL;
if (portnumber_filename != NULL) {
+ len = strlen(portnumber_filename)+4+1;
+ temp_portnumber_filename = malloc(len);
snprintf(temp_portnumber_filename,
- sizeof(temp_portnumber_filename),
+ len,
"%s.lck", portnumber_filename);
portnumber_file = fopen(temp_portnumber_filename, "a");
@@ -5752,6 +5755,7 @@ int main (int argc, char **argv) {
if (portnumber_file) {
fclose(portnumber_file);
rename(temp_portnumber_filename, portnumber_filename);
+ free(temp_portnumber_filename);
}
}