Mercurial > hg > truffle
comparison src/os/linux/vm/attachListener_linux.cpp @ 1353:a2ea687fdc7c
6938627: Make temporary directory use property java.io.tmpdir when specified
Summary: Get java.io.tmpdir property in os::get_temp_directory() and call this instead of harcoding "/tmp". Don't assume trailing file_separator either.
Reviewed-by: dholmes, kamg
author | coleenp |
---|---|
date | Wed, 31 Mar 2010 16:51:18 -0700 |
parents | d1605aabd0a1 |
children | 96d554193f72 |
comparison
equal
deleted
inserted
replaced
1330:4a9cc99938e3 | 1353:a2ea687fdc7c |
---|---|
190 strcpy(addr.sun_path, path); | 190 strcpy(addr.sun_path, path); |
191 ::unlink(path); | 191 ::unlink(path); |
192 res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr)); | 192 res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr)); |
193 } | 193 } |
194 if (res == -1) { | 194 if (res == -1) { |
195 sprintf(path, "%s/.java_pid%d", os::get_temp_directory(), os::current_process_id()); | 195 snprintf(path, PATH_MAX+1, "%s/.java_pid%d", |
196 os::get_temp_directory(), os::current_process_id()); | |
196 strcpy(addr.sun_path, path); | 197 strcpy(addr.sun_path, path); |
197 ::unlink(path); | 198 ::unlink(path); |
198 res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr)); | 199 res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr)); |
199 } | 200 } |
200 if (res == -1) { | 201 if (res == -1) { |
458 // or /tmp then this is the trigger to start the attach mechanism | 459 // or /tmp then this is the trigger to start the attach mechanism |
459 bool AttachListener::is_init_trigger() { | 460 bool AttachListener::is_init_trigger() { |
460 if (init_at_startup() || is_initialized()) { | 461 if (init_at_startup() || is_initialized()) { |
461 return false; // initialized at startup or already initialized | 462 return false; // initialized at startup or already initialized |
462 } | 463 } |
463 char fn[32]; | 464 char fn[128]; |
464 sprintf(fn, ".attach_pid%d", os::current_process_id()); | 465 sprintf(fn, ".attach_pid%d", os::current_process_id()); |
465 int ret; | 466 int ret; |
466 struct stat64 st; | 467 struct stat64 st; |
467 RESTARTABLE(::stat64(fn, &st), ret); | 468 RESTARTABLE(::stat64(fn, &st), ret); |
468 if (ret == -1) { | 469 if (ret == -1) { |
469 sprintf(fn, "/tmp/.attach_pid%d", os::current_process_id()); | 470 snprintf(fn, sizeof(fn), "%s/.attach_pid%d", |
471 os::get_temp_directory(), os::current_process_id()); | |
470 RESTARTABLE(::stat64(fn, &st), ret); | 472 RESTARTABLE(::stat64(fn, &st), ret); |
471 } | 473 } |
472 if (ret == 0) { | 474 if (ret == 0) { |
473 // simple check to avoid starting the attach mechanism when | 475 // simple check to avoid starting the attach mechanism when |
474 // a bogus user creates the file | 476 // a bogus user creates the file |