Changeset a03339b


Ignore:
Timestamp:
Nov 27, 2015 10:39:19 PM (5 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
415b51b
Parents:
b1668bb
Message:

SAM:

  • Use DataHelper? to load/store sam.keys
  • Move sam.keys file to config dir (ticket #677)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • apps/sam/java/src/net/i2p/sam/SAMBridge.java

    rb1668bb ra03339b  
    4343import net.i2p.util.I2PSSLSocketFactory;
    4444import net.i2p.util.Log;
     45import net.i2p.util.OrderedProperties;
    4546import net.i2p.util.PortMapper;
    4647import net.i2p.util.SystemVersion;
     
    256257    /**
    257258     * Load up the keys from the persistFilename.
    258      * TODO use DataHelper
    259      * TODO store in config dir, not base dir
    260      */
     259     */
     260    @SuppressWarnings("unchecked")
    261261    private void loadKeys() {
    262262        synchronized (nameToPrivKeys) {
    263263            nameToPrivKeys.clear();
    264             BufferedReader br = null;
     264            File file = new File(persistFilename);
     265            // now in config dir but check base dir too...
     266            if (!file.exists()) {
     267                if (file.isAbsolute())
     268                    return;
     269                file = new File(I2PAppContext.getGlobalContext().getConfigDir(), persistFilename);
     270                if (!file.exists())
     271                    return;
     272            }
    265273            try {
    266                 br = new BufferedReader(new InputStreamReader(
    267                         new FileInputStream(persistFilename), "UTF-8"));
    268                 String line = null;
    269                 while ( (line = br.readLine()) != null) {
    270                     int eq = line.indexOf('=');
    271                     String name = line.substring(0, eq);
    272                     String privKeys = line.substring(eq+1);
    273                     nameToPrivKeys.put(name, privKeys);
    274                 }
     274                Properties props = new Properties();
     275                DataHelper.loadProps(props, file);
     276                // unchecked
     277                Map foo = props;
     278                nameToPrivKeys.putAll(foo);
    275279                if (_log.shouldInfo())
    276                     _log.info("Loaded " + nameToPrivKeys.size() + " private keys from " + persistFilename);
    277             } catch (FileNotFoundException fnfe) {
    278                 _log.warn("Key file does not exist at " + persistFilename);
     280                    _log.info("Loaded " + nameToPrivKeys.size() + " private keys from " + file);
    279281            } catch (IOException ioe) {
    280                 _log.error("Unable to read the keys from " + persistFilename, ioe);
    281             } finally {
    282                 if (br != null) try { br.close(); } catch (IOException ioe) {}
     282                _log.error("Unable to read the keys from " + file, ioe);
    283283            }
    284284        }
     
    287287    /**
    288288     * Store the current keys to disk in the location specified on creation.
    289      * TODO use DataHelper
    290      * TODO store in config dir, not base dir
    291289     */
    292290    private void storeKeys() {
    293291        synchronized (nameToPrivKeys) {
    294             FileOutputStream out = null;
     292            File file = new File(persistFilename);
     293            // now in config dir but check base dir too...
     294            if (!file.exists() && !file.isAbsolute())
     295                file = new File(I2PAppContext.getGlobalContext().getConfigDir(), persistFilename);
    295296            try {
    296                 out = new FileOutputStream(persistFilename);
    297                 for (Map.Entry<String, String> entry : nameToPrivKeys.entrySet()) {
    298                     String name = entry.getKey();
    299                     String privKeys = entry.getValue();
    300                     out.write(name.getBytes("UTF-8"));
    301                     out.write('=');
    302                     out.write(privKeys.getBytes("UTF-8"));
    303                     out.write('\n');
    304                 }
     297                Properties props = new OrderedProperties();
     298                props.putAll(nameToPrivKeys);
     299                DataHelper.storeProps(props, file);
    305300                if (_log.shouldInfo())
    306                     _log.info("Saved " + nameToPrivKeys.size() + " private keys to " + persistFilename);
     301                    _log.info("Saved " + nameToPrivKeys.size() + " private keys to " + file);
    307302            } catch (IOException ioe) {
    308                 _log.error("Error writing out the SAM keys to " + persistFilename, ioe);
    309             } finally {
    310                 if (out != null) try { out.close(); } catch (IOException ioe) {}
     303                _log.error("Error writing out the SAM keys to " + file, ioe);
    311304            }
    312305        }
Note: See TracChangeset for help on using the changeset viewer.