Code with Finding: |
class httpd {
/**
* The property monitoring implementation.
* @param name The name of the property that has changed.
* @return A boolean, <strong>true</strong> if the changed was taken into
* account, <strong>false</strong> otherwise.
*/
public boolean propertyChanged (String name) {
// Is this a property we are interested in ?
if ( name.equals(SERVER_SOFTWARE_P) ) {
software = props.getString(name, software);
return true;
} else if ( name.equals(TRACE_P) ) {
tracep = props.getBoolean(name, tracep) ;
errlog (name + " changed to " + tracep) ;
return true ;
} else if ( name.equals(KEEP_ALIVE_P) ) {
keep = props.getBoolean (name, keep) ;
errlog (name + " changed to " + keep) ;
return true ;
} else if ( name.equals(LOGGER_P) ) {
String tmp_logger_class;
Logger tmp_logger;
tmp_logger_class = props.getString(name, logger_class);
// for now the removal of the logger should be done by hand
if (!tmp_logger_class.equals(logger_class)) {
try {
tmp_logger = (Logger)
Class.forName(tmp_logger_class).newInstance() ;
} catch (Exception ex) {
errlog (name + " change failed (bad logger class)") ;
return false;
}
synchronized (this) {
if (logger != null) {
logger.shutdown();
}
tmp_logger.initialize(this);
logger = tmp_logger;
logger_class = tmp_logger_class;
}
}
return true;
} else if ( name.equals(ROOT_NAME_P) ) {
String newname = props.getString(name, null);
if ( changeRoot(newname) != null ) {
errlog("new root resource ["+newname+"]");
return true;
} else {
errlog("failed to change root to ["+newname+"].");
return false;
}
} else if ( name.equals(SPACE_P) ) {
errlog (name + " change failed (server running)") ;
return false ;
} else if ( name.equals(HOST_P) ) {
errlog (name + " change failed (server running)") ;
return false ;
} else if ( name.equals(PORT_P) ) {
// we will restart the server
errlog (name + " switching port : " + props.getInteger(name, 80)) ;
int newport = props.getInteger(name, 80);
if (port != newport) {
int oldport = port;
port = newport;
checkpoint();
ServerSocket newsocket = null;
try {
newsocket = factory.createServerSocket();
socket.close();
socket = newsocket;
} catch (Exception ex) {
try { newsocket.close(); } catch (Exception e) {};
port = oldport;
// an error occured, return false
return false;
}
}
return true ;
} else if ( name.equals(CLIENT_DEBUG_P) ) {
client_debug = props.getBoolean(name, client_debug) ;
errlog (name + " changed to " + client_debug) ;
return true ;
} else if ( name.equals(REQUEST_TIMEOUT_P) ){
request_time_out = props.getInteger(name, request_time_out);
errlog (name + " changed to " + request_time_out) ;
return true ;
} else if ( name.equals(KEEP_TIMEOUT_P) ) {
connection_time_out = props.getInteger(name
, connection_time_out);
errlog (name + " changed to " + connection_time_out) ;
return true ;
} else if ( name.equals(CLIENT_PRIORITY_P) ){
client_priority = props.getInteger (name, client_priority) ;
errlog (name + " changed to " + client_priority) ;
return true ;
} else if ( name.equals(CLIENT_BUFSIZE_P) ){
client_bufsize = props.getInteger (name, client_bufsize) ;
errlog (name + " changed to " + client_bufsize) ;
return true ;
} else if ( name.equals(DOCURL_P) ) {
String propval = props.getString(name, docurl);
try {
URL u = new URL(getURL(), propval);
docurl = u.toExternalForm();
} catch (Exception ex) {
return false;
}
return true;
} else if (name.equals(TRASHDIR_P)) {
trashdir = props.getString(name, trashdir);
File dir = new File(trashdir);
if (! dir.exists())
dir.mkdirs();
errlog(name + " changed to "+ trashdir);
return true;
} else if ( name.equals(CHECKURL_P) ) {
checkurl = props.getString(name, checkurl);
errlog(name + " changed to "+ checkurl);
return true;
} else if ( name.equals(PUBLIC_P) ) {
publicMethods = props.getStringArray(name, publicMethods);
publicHeader = null;
return true;
} else if ( name.equals(SERVER_USER_P) ) {
String user = props.getString(SERVER_USER_P, null);
errlog("new user: "+user);
return false;
} else if (name.equals(SERVER_GROUP_P) ) {
String group = props.getString(SERVER_GROUP_P, null);
errlog("new group: "+group);
return false;
} else {
// We don't care about this one
return true ;
}
}
}
|