aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl/configuration/ConfigurationActivator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/java/sip/communicator/impl/configuration/ConfigurationActivator.java')
-rw-r--r--src/net/java/sip/communicator/impl/configuration/ConfigurationActivator.java69
1 files changed, 32 insertions, 37 deletions
diff --git a/src/net/java/sip/communicator/impl/configuration/ConfigurationActivator.java b/src/net/java/sip/communicator/impl/configuration/ConfigurationActivator.java
index 1553658..a77b2f5 100644
--- a/src/net/java/sip/communicator/impl/configuration/ConfigurationActivator.java
+++ b/src/net/java/sip/communicator/impl/configuration/ConfigurationActivator.java
@@ -28,6 +28,9 @@ import org.jitsi.util.*;
import org.osgi.framework.*;
import java.io.*;
+import java.nio.file.*;
+import java.nio.file.attribute.*;
+import java.util.*;
/**
*
@@ -64,39 +67,38 @@ public class ConfigurationActivator
if (fas != null)
{
- File useDatabaseConfig;
-
+ File usePropFileConfig;
try
{
- useDatabaseConfig
+ usePropFileConfig
= fas.getPrivatePersistentFile(
- ".usedatabaseconfig",
+ ".usepropfileconfig",
FileCategory.PROFILE);
}
catch (Exception ise)
{
-
// There is somewhat of a chicken-and-egg dependency between
// FileConfigurationServiceImpl and ConfigurationServiceImpl:
// FileConfigurationServiceImpl throws IllegalStateException if
// certain System properties are not set,
// ConfigurationServiceImpl will make sure that these properties
- //are set but it will do that later.
+ // are set but it will do that later.
// A SecurityException is thrown when the destination
// is not writable or we do not have access to that folder
- useDatabaseConfig = null;
+ usePropFileConfig = null;
}
- // BETA: if the marker file exists, use the database configuration
- if ((useDatabaseConfig != null) && useDatabaseConfig.exists())
+ if (usePropFileConfig != null && usePropFileConfig.exists())
{
- logger.info("Using database configuration store.");
- this.cs = new JdbcConfigService(fas);
+ logger.info("Using properties file configuration store.");
+ this.cs = LibJitsi.getConfigurationService();
}
}
if (this.cs == null)
- this.cs = LibJitsi.getConfigurationService();
+ {
+ this.cs = new JdbcConfigService(fas);
+ }
bundleContext.registerService(
ConfigurationService.class.getName(),
@@ -139,17 +141,30 @@ public class ConfigurationActivator
// let's check config file and config folder
File homeFolder
= new File(cs.getScHomeDirLocation(), cs.getScHomeDirName());
- CLibrary libc = (CLibrary) Native.loadLibrary("c", CLibrary.class);
-
- libc.chmod(homeFolder.getAbsolutePath(), 0700);
+ Set<PosixFilePermission> perms =
+ new HashSet<PosixFilePermission>()
+ {{
+ add(PosixFilePermission.OWNER_READ);
+ add(PosixFilePermission.OWNER_WRITE);
+ add(PosixFilePermission.OWNER_EXECUTE);
+ }};
+ Files.setPosixFilePermissions(
+ Paths.get(homeFolder.getAbsolutePath()), perms);
String fileName = cs.getConfigurationFilename();
-
if(fileName != null)
{
File cf = new File(homeFolder, fileName);
if(cf.exists())
- libc.chmod(cf.getAbsolutePath(), 0600);
+ {
+ perms = new HashSet<PosixFilePermission>()
+ {{
+ add(PosixFilePermission.OWNER_READ);
+ add(PosixFilePermission.OWNER_WRITE);
+ }};
+ Files.setPosixFilePermissions(
+ Paths.get(cf.getAbsolutePath()), perms);
+ }
}
}
catch(Throwable t)
@@ -164,24 +179,4 @@ public class ConfigurationActivator
throw (ThreadDeath) t;
}
}
-
- /**
- * The JNA interface to the <tt>c</tt> library and the <tt>chmod</tt>
- * function we use to fix permissions of user files and folders.
- */
- public interface CLibrary
- extends Library
- {
- /**
- * Changes file permissions.
- *
- * @param path the path to the file or folder the permissions of which
- * are to be changed.
- * @param mode the mode operand
- * @return <tt>0</tt> upon successful completion; otherwise,
- * <tt>-1</tt>. If <tt>-1</tt> is returned, no change to the file mode
- * occurs.
- */
- public int chmod(String path, int mode);
- }
}