Re: [Tails-dev] Proposed changes to tails-starter-i2p && my …

Delete this message

Reply to this message
Autore: Cryptkiddy
Data:  
To: intrigeri
CC: The Tails public development discussion list
Nuovi argomenti: [Tails-dev] ***SPAM*** Re: Proposed changes to tails-starter-i2p &&my first contribution to OSS
Oggetto: Re: [Tails-dev] Proposed changes to tails-starter-i2p && my first contribution to OSS
Hi,

first of all thanks a lot for your replay.

I will certainly try to fix my work. Especially regarding the parts that are
easily done.
However so far I am not 100% certain how to implement two of your suggestions
(see below). I'll have to do some research regarding them.

Sorry about the style. (I could hit myself. I meant to check that before
sending it but I forgot. (Might be that I was a little too eager to submit
it...))

So here is a commented copy of the ToDo list I deduced from your mail. I
already did some parts.
The parts I haven't done yet and/or where I am unsure how to do them are at
the end.

Additionally I have attached a copy of the code I have so far.


Cheers,
    Cryptkiddy





###TODO:##############


#Fix style - (done)

#Check use of Memoize or other - (done)
#    (also consider setting global variable to compute it only once)  - (done)


    I used 'use feature "state" ' and made the $routerPort static. If the 
function was called before now it simply returns the old value.


    use feature "state";    #(l. 4)
    state $routerPort = 0;      #(ll. 12 ff)
    if($routerPort) {
    # If we found the Port before there should be no need to recheck it.
        return $routerPort;
    }




#Indirect filehandle - (done)
#three arguments open -(done)

    if(! open($conffile, "<", "/etc/i2p/clients.config")) {     #(l. 23)



#Replace $string by $line - (done)

#put $I2pDefPort in variable for easier change - (done)

    my $I2pDefaultPort = 7657;         #(line 20)



# only one line for "return $routerPort" check - (done)

        #(ll. 57 ff)
        if (($routerPort) = ($line =~ m/$regex/)) {
            return $routerPort;
        }



# fix 2. RegEx - (done)
#   wrongly escaped chars - (done)
#   regarding last part always being " ./webapps/" -(done)
#               ->need to check whether there is optional whitespace behind 
"./webapps/" in i2pConf - (done)


    my $regex = '^clientApp\.' . $ClientAppNo . '\.args=([0-9]{1,5})\ [0-9s:,. 
\-]+ \.\/webapps\/[\s]*$';


################NOT DONE YET###################################

#get rid of ugly namespace - (ask whether solution is OK)
# (probably easiest to just use "return $defPort;" multiple times -
shouldn't be too much code repetition) - (done?)
# (is errorhandlig with GoTo better??)

    I inlined the errorhandling (I hope that is alright?) as e.g. in (ll. 23 
ff):


        if(! open($conffile, "<", "/etc/i2p/clients.config")) { 
            warn "Can not open i2p config file '/etc/i2p/client.config'.".
            " Using default port ". $I2pDefaultPort." for I2P webinterface 
instead.";
            return $I2pDefaultPort;
        }




#change code around "$ClientAppNo = -1" - ()
#   unsure how to (maybe check whole file at once and include "\n" in regex?)
                        ->should then do the same for the other regex (might 
even turn out to be faster)







#Doublecheck style before submit - ()
#    +check variable naming scheme - ()
#Doublecheck ToDos before submit - ()
#Test in TAILS whether it works - ()