Changeset 86e663b


Ignore:
Timestamp:
Feb 7, 2011 7:08:56 PM (10 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
6c1f5dd
Parents:
33c5e14
Message:
  • i2ptunnel: Generate error message when i2ptunnel.config save fails (ticket #404)
Location:
apps/i2ptunnel/java/src/net/i2p/i2ptunnel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelControllerGroup.java

    r33c5e14 r86e663b  
    22
    33import java.io.File;
    4 import java.io.FileOutputStream;
    54import java.io.IOException;
    65import java.util.ArrayList;
     
    87import java.util.HashMap;
    98import java.util.HashSet;
    10 import java.util.Iterator;
    119import java.util.List;
    1210import java.util.Map;
    1311import java.util.Properties;
    1412import java.util.Set;
    15 import java.util.TreeMap;
    1613
    1714import net.i2p.I2PAppContext;
     
    2118import net.i2p.util.I2PAppThread;
    2219import net.i2p.util.Log;
    23 import net.i2p.util.SecureFileOutputStream;
     20import net.i2p.util.OrderedProperties;
    2421
    2522/**
     
    224221     *
    225222     */
    226     public void saveConfig() {
     223    public void saveConfig() throws IOException {
    227224        saveConfig(_configFile);
    228225    }
     226
    229227    /**
    230228     * Save the configuration of all known tunnels to the given file
    231229     *
    232230     */
    233     public void saveConfig(String configFile) {
     231    public void saveConfig(String configFile) throws IOException {
    234232        _configFile = configFile;
    235233        File cfgFile = new File(configFile);
     
    240238            parent.mkdirs();
    241239       
    242        
    243         TreeMap map = new TreeMap();
     240        Properties map = new OrderedProperties();
    244241        for (int i = 0; i < _controllers.size(); i++) {
    245242            TunnelController controller = _controllers.get(i);
     
    248245        }
    249246       
    250         StringBuilder buf = new StringBuilder(1024);
    251         for (Iterator iter = map.keySet().iterator(); iter.hasNext(); ) {
    252             String key = (String)iter.next();
    253             String val = (String)map.get(key);
    254             buf.append(key).append('=').append(val).append('\n');
    255         }
    256        
    257         FileOutputStream fos = null;
    258         try {
    259             fos = new SecureFileOutputStream(cfgFile);
    260             fos.write(buf.toString().getBytes("UTF-8"));
    261             if (_log.shouldLog(Log.INFO))
    262                 _log.info("Config written to " + cfgFile.getPath());
    263         } catch (IOException ioe) {
    264             _log.error("Error writing out the config");
    265         } finally {
    266             if (fos != null) try { fos.close(); } catch (IOException ioe) {}
    267         }
     247        DataHelper.storeProps(map, cfgFile);
    268248    }
    269249   
  • apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java

    r33c5e14 r86e663b  
    99 */
    1010
    11 import java.util.concurrent.ConcurrentHashMap;
     11import java.io.IOException;
    1212import java.util.ArrayList;
    1313import java.util.Arrays;
     
    1818import java.util.Set;
    1919import java.util.StringTokenizer;
     20import java.util.concurrent.ConcurrentHashMap;
    2021
    2122import net.i2p.I2PAppContext;
     
    300301        }
    301302       
    302         List msgs = doSave();
    303         msgs.add(0, "Changes saved");
     303        List<String> msgs = doSave();
    304304        return getMessages(msgs);
    305305    }
    306     private List doSave() {
    307         _group.saveConfig();
    308         return _group.clearAllMessages();
     306
     307    private List<String> doSave() {
     308        List<String> rv = _group.clearAllMessages();
     309        try {
     310            _group.saveConfig();
     311            rv.add(0, _("Configuration changes saved"));
     312        } catch (IOException ioe) {
     313            _log.error("Failed to save config file", ioe);
     314            rv.add(0, _("Failed to save configuration") + ": " + ioe.toString());
     315        }
     316        return rv;
    309317    }
     318
    310319    private String deleteTunnel() {
    311320        if (!_removeConfirmed)
     
    10961105    }
    10971106   
    1098     private static String getMessages(List msgs) {
     1107    private static String getMessages(List<String> msgs) {
    10991108        StringBuilder buf = new StringBuilder(128);
    11001109        getMessages(msgs, buf);
     
    11021111    }
    11031112
    1104     private static void getMessages(List msgs, StringBuilder buf) {
     1113    private static void getMessages(List<String> msgs, StringBuilder buf) {
    11051114        if (msgs == null) return;
    11061115        for (int i = 0; i < msgs.size(); i++) {
    1107             buf.append((String)msgs.get(i)).append("\n");
     1116            buf.append(msgs.get(i)).append("\n");
    11081117        }
    11091118    }
Note: See TracChangeset for help on using the changeset viewer.