noob with asus520gu, optware, transmission 1.76, help needed

Ask for help and report issues not specific to either the Mac OS X or GTK+ versions of Transmission
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

well in the last two weeks I have been going through endless searches on google and several fora just to be able to get a newly bought Asus 520gu up and running as a nas & torrenting solution. let it be mentioned that my knowledge of linux or coding or scripting is naught.

the router sits attached with a 500gb WD 3.5" hdd in a buffalo enclosure over usb. there are three partitions on the hdd,
1. 512mb ext3 "OPTWARE", where /opt mounts on startup as

Code: Select all

[ -d /mnt/Optware ] && mount /mnt/Optware /opt
2. 64mb as SWAP and
3. <Rest> ext3 "SHARED".

router is flashed to Tomato 1.27 ND Teddy Bear Standard mod and i have been able to load optware and transmission 1.76 to it. transmission daemon is setup to run on mounting as

Code: Select all

/opt/bin/transmission-daemon -g /mnt/Shared/Torrents/.config/transmission-daemon
there have been few issues of very high cpu consumption and lockups with transmission which, after reading several posts here, i gather will be resolved in ver 1.8. so far i have limited peers per torrent to 30, disabled pex and dht and dont have more than two active torrents and things seem to be going okay.

i need help with:
1. being able to queue torrents so as to make only one dl/ul at a time until completed till the next one is started. i went as far as trying to make certain scripts work through cron (as in putty i could see crond -l 9 as one of the services in top) without any idea of what i was trying to look for or make do. further couldnt find crontab in the /opt folder or a way to execute the script anyhow. like i said zero knowledge of any of this, just the power of google and a knack of trying.

2. upgrading to transmission 1.8 even if its beta. how do i get it.

all help is appreciated and please dont hesitate to spell it out in gory details... i am a noob
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by rb07 »

dheerajjotwani wrote:i need help with:
1. being able to queue torrents so as to make only one dl/ul at a time until completed till the next one is started. i went as far as trying to make certain scripts work through cron (as in putty i could see crond -l 9 as one of the services in top) without any idea of what i was trying to look for or make do. further couldnt find crontab in the /opt folder or a way to execute the script anyhow. like i said zero knowledge of any of this, just the power of google and a knack of trying.
You should read 'man cron', but I know the NAS probably doesn't have 'man' so do google 'man cron' which will be no good but you'll learn about 'crontab' (OK, here's goes http://linux.die.net/man/1/crontab) and to make things confusing there are 2 man pages for crontab, the one I showed is the command, the other (http://linux.die.net/man/5/crontab) is the format, you'll need both.
2. upgrading to transmission 1.8 even if its beta. how do i get it.
AFAIK you have to build it.

Yep, that means installing the compiler, binutils, make, other tools, all the pre-requisites for Transmission daemon (libcurl, openssl). It works, I do it all the time on my NAS (HP MediaVault), but you have to know what you are doing, or have lots of spare time, or follow very closely the instructions at the Wiki.
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

^ thanks man.
AFAIK you have to build it.

Yep, that means installing the compiler, binutils, make, other tools, all the pre-requisites for Transmission daemon (libcurl, openssl). It works, I do it all the time on my NAS (HP MediaVault), but you have to know what you are doing, or have lots of spare time, or follow very closely the instructions at the Wiki.
i think i'll let it pass fr the time being.
You should read 'man cron', but I know the NAS probably doesn't have 'man' so do google 'man cron' which will be no good but you'll learn about 'crontab' (OK, here's goes http://linux.die.net/man/1/crontab) and to make things confusing there are 2 man pages for crontab, the one I showed is the command, the other (http://linux.die.net/man/5/crontab) is the format, you'll need both.
i get this but without basic knowledge of scripting how do i get it working. i dunno if there already exists a crontab file on the /opt or maybe on the router itself. all i can see is the crond running. if i create a new one, where do i save it? and most importantly i need a good script for queuing.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by rb07 »

dheerajjotwani wrote:i get this but without basic knowledge of scripting how do i get it working.
I thought you already had the script, there is one in this forum which is too complex to understand but easy to use... not plug-and-play it has a couple of parameters you have to set.

One is here http://forum.transmissionbt.com/viewtop ... 025#p40905 and there was an improved script here http://forum.transmissionbt.com/viewtop ... 085#p42401.

Also check that you have all the commands the script uses and the paths are the same on your system or change them.
i dunno if there already exists a crontab file on the /opt or maybe on the router itself. all i can see is the crond running. if i create a new one, where do i save it? and most importantly i need a good script for queuing.
The easy way is like you describe, you put the script (don't forget to make the file executable) in a directory, in Linux its at /etc/cron.hourly/, /etc/cron.daily/, etc. which contains the scripts, not a crontab format file.

If you want more precise control, for instance higher frequency than hourly, then you put a crontab format file in /etc/cron.d, the script goes somewhere else. Or you edit the user's crontab by running 'crontab -e' (not recommended for first time users).

In my NAS the place is /opt/etc/cron.d/ and the same for the other directories, /opt/etc/cron.hourly and so on. Depending on the version of cron you have is what you can use and where it looks for tables or scripts.
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

^^me thinks there is some progress here.

i did as u suggested. got the script

Code: Select all

    #!/bin/bash
    # *************
    # transmission-remote-queue version 0.1
    # Contact sam.day (at) gmail.com with suggestions, corrections, etc.
    # Based on wereHampster's script from http://pastie.org/357236
    # *************
    # Variables
    #
    # Path to transmission-remote
    REMOTE="/usr/local/bin/transmission-remote"
    MAXACTIVE="3"
    MAXDOWNLOADING="2"
    DESIREDRATIO="1.5"
    # *************

    # Stop torrents that have finished downloading
    LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep 100% | grep -v Stopped | awk '{ print $1; }')"
    for ID in $LIST; do
        NAME="$($REMOTE --torrent $ID --info | grep Name:)"
        echo "Stopping Torrent: $ID - ${NAME#*Name: }"
        $REMOTE --torrent $ID --stop >/dev/null
    done

    # Start downloading new torrents if download slots exist
    DOWNLOADING="$($REMOTE -l | tail -n +2 | head -n -1  | grep -v Stopped | grep -v 100% | wc -l)"
    if [ $DOWNLOADING -lt $MAXDOWNLOADING ]; then
        LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep -v 100% | grep Stopped | shuf | head -n $(expr $MAXDOWNLOADING - $DOWNLOADING) | awk '{ print $1; }')"
        for ID in $LIST; do
            NAME="$($REMOTE --torrent $ID --info | grep Name:)"
            echo "Downloading Torrent: $ID - ${NAME#*Name: }"
            $REMOTE --torrent $ID --start --verify >/dev/null
        done
    fi

    # Seed torrents below desired ratio if slots exist
    # TODO:  prioritising those with the lowest ratio
    ACTIVE="$($REMOTE -l | tail -n +2 | head -n -1  | grep -v Stopped | wc -l)"
    if [ $ACTIVE -lt $MAXACTIVE ]; then
        LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep 100% | shuf | tail -n $(expr $MAXACTIVE - $ACTIVE) | awk '{ print $1; }')"
        for ID in $LIST; do
            RATIO="$($REMOTE -t $ID -i | grep Ratio | awk '{ print $2; }')"
            if expr $RATIO \<= $DESIREDRATIO > /dev/null; then
                NAME="$($REMOTE --torrent $ID --info | grep Name:)"
                echo "Seeding Torrent: $ID - ${NAME#*Name: } (Ratio $RATIO)"
                $REMOTE --torrent $ID --start --verify >/dev/null
            fi
        done
    fi

    # List Active Torrents
    LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep -v Stopped | awk '{ print $1; }')"
    for ID in $LIST; do
        NAME="$($REMOTE --torrent $ID --info | grep Name:)"
        echo "Active: $ID - ${NAME#*Name: }"
    done
changed the remote path to /opt/bin/transmission-remote and copied it in a notepad file and removed the txt extension and put in /opt/etc/cron.hourly/ naming it 'queue'. i created the directory cron.hourly in /opt/etc btw.

then made 'queue' executable using

Code: Select all

chmod 755 /opt/etc/cron.hourly/queue
post that i tried executing it in putty and below is what came out of it.

Code: Select all

BusyBox v1.14.4 (2010-01-07 17:43:12 EST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

root@Asus520gu:/tmp/home/root# sh /opt/etc/cron.hourly/queue
: not foundon.hourly/queue: line 15:
: not foundon.hourly/queue: line 17: /opt/bin/transmission-remote
head: invalid number '-1'
/opt/etc/cron.hourly/queue: line 18: syntax error: unexpected word (expecting "d                  o")
root@Asus520gu:/tmp/home/root#
now what to do...
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by rb07 »

Check that you have /bin/bash, my NAS didn't have it so I installed it using optware (probably) and its real location is /opt/bin/bash so you have to put that in the script... of course you can use another shell instead of bash, but the ones installed with BusyBox probably won't work, they are to primitive.

BTW if the script is executable you don't need "sh script.name" you can execute the script directly.

Another problem I see, you used Notepad... yuck! that piece of sh.. changed the script from Unix format (lines ending in LineFeed) to DOS format (lines ending with CarriageReurn-LineFeed), that made the shell puke, now you need 'd2u' (a.k.a. dos2unix) to clean up the mess. Next time use Notepad++ .

Again, make sure you have all the commands used: 'awk', 'head', 'tail', etc. Even if you have them they may not work; I'm thinking that BusyBox "installs" a bunch of those, but they are not the real tools but a smaller version with less functionality... what I did, since the NAS has a lot of space, I installed the real tools (again optware or build them which is what I usually do), and set the PATH inside the script (i.e. a line with PATH=/opt/bin:$PATH).
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

hey...

thanks again. i did download np++ and copied the script and saved it in a .sh format, one with .bsh. i changed the path to /opt/bin/bash and add the PATH=/opt/bin=$PATH line too...

Code: Select all

    #!/opt/bin/bash
    # *************
    # transmission-remote-queue version 0.1
    # Contact sam.day (at) gmail.com with suggestions, corrections, etc.
    # Based on wereHampster's script from http://pastie.org/357236
    # *************
    # Variables
    #
    # Path to transmission-remote
    REMOTE="/opt/bin/transmission-remote"
    MAXACTIVE="2"
    MAXDOWNLOADING="1"
    DESIREDRATIO="1"
	PATH=/opt/bin:$PATH
    # *************

    # Stop torrents that have finished downloading
    LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep 100% | grep -v Stopped | awk '{ print $1; }')"
    for ID in $LIST; do
        NAME="$($REMOTE --torrent $ID --info | grep Name:)"
        echo "Stopping Torrent: $ID - ${NAME#*Name: }"
        $REMOTE --torrent $ID --stop >/dev/null
    done

    # Start downloading new torrents if download slots exist
    DOWNLOADING="$($REMOTE -l | tail -n +2 | head -n -1  | grep -v Stopped | grep -v 100% | wc -l)"
    if [ $DOWNLOADING -lt $MAXDOWNLOADING ]; then
        LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep -v 100% | grep Stopped | shuf | head -n $(expr $MAXDOWNLOADING - $DOWNLOADING) | awk '{ print $1; }')"
        for ID in $LIST; do
            NAME="$($REMOTE --torrent $ID --info | grep Name:)"
            echo "Downloading Torrent: $ID - ${NAME#*Name: }"
            $REMOTE --torrent $ID --start --verify >/dev/null
        done
    fi

    # Seed torrents below desired ratio if slots exist
    # TODO:  prioritising those with the lowest ratio
    ACTIVE="$($REMOTE -l | tail -n +2 | head -n -1  | grep -v Stopped | wc -l)"
    if [ $ACTIVE -lt $MAXACTIVE ]; then
        LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep 100% | shuf | tail -n $(expr $MAXACTIVE - $ACTIVE) | awk '{ print $1; }')"
        for ID in $LIST; do
            RATIO="$($REMOTE -t $ID -i | grep Ratio | awk '{ print $2; }')"
            if expr $RATIO \<= $DESIREDRATIO > /dev/null; then
                NAME="$($REMOTE --torrent $ID --info | grep Name:)"
                echo "Seeding Torrent: $ID - ${NAME#*Name: } (Ratio $RATIO)"
                $REMOTE --torrent $ID --start --verify >/dev/null
            fi
        done
    fi

    # List Active Torrents
    LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep -v Stopped | awk '{ print $1; }')"
    for ID in $LIST; do
        NAME="$($REMOTE --torrent $ID --info | grep Name:)"
        echo "Active: $ID - ${NAME#*Name: }"
    done
now you are right, there wasnt a /opt/bin/bash on the hdd connected to the router. i kept trying then did <ipkg upgrade> and <ipkg install bash> :D and like magic it appeared. then did <echo "/opt/bin/bash" >> /etc/shells> cause i read it somewhere.

now on executing the script...

Code: Select all

[root@Asus520gu root]$ /opt/etc/cron.hourly/queue.sh
: not foundon.hourly/queue.sh: line 16:
: not foundon.hourly/queue.sh: line 18: /opt/bin/transmission-remote
/opt/etc/cron.hourly/queue.sh: line 18: tail: not found
/opt/etc/cron.hourly/queue.sh: line 18: head: not found
/opt/etc/cron.hourly/queue.sh: line 18: grep: Permission denied
/opt/etc/cron.hourly/queue.sh: line 18: grep: Permission denied
/opt/etc/cron.hourly/queue.sh: line 18: awk: not found
/opt/etc/cron.hourly/queue.sh: line 19: syntax error: unexpected word (expecting "do")
[root@Asus520gu root]$
if you could be online on gtalk or something and we could do this together... i would really appreciate.
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by rb07 »

The errors while executing the script:
  • 2nd and 3rd line. That means your script file has CarriageReturns which for bash is an unknown item (and it doesn't show in the error line since CR is 'invisible';
  • 4th to 8th line. I told you to check if you have all the commands used, those lines just show you don't have 'tail', 'head' (these two come in a package named coreutils), 'grep' , 'awk' (and the package name is gawk);
  • Never mind about the last line, since the previous command didn't work $LIST was empty.
Sorry I don't use gtalk or anything similar.
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

just aint happening.

i first installed bash and then ipkg update just wont work. so removed it and then ipkg update worked. installed grep, gawk and coreutils and finally reinstalled bash. did <echo "/opt/bin/bash" >> /etc/shells>.

from shell which still says busybox (ash) i get the following on running the script

Code: Select all

[root@Asus520gu root]$ /opt/etc/cron.hourly/queue.sh
: not foundon.hourly/queue.sh: line 16:
: not foundon.hourly/queue.sh: line 18: /opt/bin/transmission-remote
/opt/etc/cron.hourly/queue.sh: line 18: tail: Permission denied
/opt/etc/cron.hourly/queue.sh: line 18: head: Permission denied
/opt/etc/cron.hourly/queue.sh: line 18: grep: Permission denied
/opt/etc/cron.hourly/queue.sh: line 18: grep: Permission denied
/opt/etc/cron.hourly/queue.sh: line 18: awk: Permission denied
/opt/etc/cron.hourly/queue.sh: line 19: syntax error: unexpected word (expecting "do")
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by rb07 »

from shell which still says busybox (ash) i get the following on running the script

Code: Select all

[root@Asus520gu root]$ /opt/etc/cron.hourly/queue.sh
: not foundon.hourly/queue.sh: line 16:[/quote]
You haven't cleaned the script... once again, your script has CR you either use d2u or any  of a number of tools to delete those CR or it won't work.   Using Notepad++ by itself doesn't clean it, it just doesn't add more CRs.  Line 16, as you can see, is an empty line, but is not really empty it has a CarriageReturn.
[quote]: not foundon.hourly/queue.sh: line 18: /opt/bin/transmission-remote
/opt/etc/cron.hourly/queue.sh: line 18: tail: Permission denied[/quote]
This is different, before it was "not found" now it means its not executable, at least for the user you are logged in as... check permissions and ownership, don't mix users when you install things (optware should be used by root).
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

finally got that CR out of the way...
and used bash to execute script and this is what it gives

Code: Select all

[root@Asus520gu root]$ bash /opt/etc/cron.hourly/queue.sh
: No such file or directorysh: line 17: /opt/bin/transmission-remote
'opt/etc/cron.hourly/queue.sh: line 18: syntax error near unexpected token `do
'opt/etc/cron.hourly/queue.sh: line 18: `    for ID in $LIST; do
[root@Asus520gu root]$
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by rb07 »

Same problem with line 17, another CR. You seem to be using a different script than the one you posted above... line 17 above is a comment, bash wouldn't complain about that.

Does your script file look just like the one you posted above, i.e. all lines start with 4 blanks? Get rid of those blanks, I don't think the first line, which directs the shell to execute the script with bash, works that way (i.e. with the extra blanks).

Line 18, which is line 19 in the script above, could be the same problem, bash is seeing 'do<CR>' (the <CR> is only one character).

Try the command alone on a terminal:

Code: Select all

transmission-remote -l | tail -n +2 | head -n -1 | grep 100% | grep -v Stopped | awk '{ print $1; }'
Assuming you have some active torrents, is the result a list of numbers? one per line? If that works then the problem really is in the script.
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

SCRIPT

Code: Select all

    #!/opt/bin/bash
    # *************
    # transmission-remote-queue version 0.1
    # Contact sam.day (at) gmail.com with suggestions, corrections, etc.
    # Based on wereHampster's script from http://pastie.org/357236
    # *************
    # Variables
    #
    # Path to transmission-remote
    REMOTE="/opt/bin/transmission-remote"
    MAXACTIVE="2"
    MAXDOWNLOADING="1"
    DESIREDRATIO="1"
    PATH=/opt/bin:$PATH
    # *************
    # Stop torrents that have finished downloading
    LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep 100% | grep -v Stopped | awk '{ print $1; }')"
    for ID in $LIST; do
        NAME="$($REMOTE --torrent $ID --info | grep Name:)"
        echo "Stopping Torrent: $ID - ${NAME#*Name: }"
        $REMOTE --torrent $ID --stop >/dev/null
    done
    # Start downloading new torrents if download slots exist
    DOWNLOADING="$($REMOTE -l | tail -n +2 | head -n -1  | grep -v Stopped | grep -v 100% | wc -l)"
    if [ $DOWNLOADING -lt $MAXDOWNLOADING ]; then
        LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep -v 100% | grep Stopped | shuf | head -n $(expr $MAXDOWNLOADING - $DOWNLOADING) | awk '{ print $1; }')"
        for ID in $LIST; do
            NAME="$($REMOTE --torrent $ID --info | grep Name:)"
            echo "Downloading Torrent: $ID - ${NAME#*Name: }"
            $REMOTE --torrent $ID --start --verify >/dev/null
        done
    fi
    # Seed torrents below desired ratio if slots exist
    # TODO:  prioritising those with the lowest ratio
    ACTIVE="$($REMOTE -l | tail -n +2 | head -n -1  | grep -v Stopped | wc -l)"
    if [ $ACTIVE -lt $MAXACTIVE ]; then
        LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep 100% | shuf | tail -n $(expr $MAXACTIVE - $ACTIVE) | awk '{ print $1; }')"
        for ID in $LIST; do
            RATIO="$($REMOTE -t $ID -i | grep Ratio | awk '{ print $2; }')"
            if expr $RATIO \<= $DESIREDRATIO > /dev/null; then
                NAME="$($REMOTE --torrent $ID --info | grep Name:)"
                echo "Seeding Torrent: $ID - ${NAME#*Name: } (Ratio $RATIO)"
                $REMOTE --torrent $ID --start --verify >/dev/null
            fi
        done
    fi
    # List Active Torrents
    LIST="$($REMOTE -l | tail -n +2 | head -n -1 | grep -v Stopped | awk '{ print $1; }')"
    for ID in $LIST; do
        NAME="$($REMOTE --torrent $ID --info | grep Name:)"
        echo "Active: $ID - ${NAME#*Name: }"
    done
yes there was an indent of 4 spaces to each line. now i removed all and tried again but the error stays.

ERROR

Code: Select all

[root@Asus520gu root]$ bash /opt/etc/cron.hourly/q1.sh
: No such file or directory line 17: /opt/bin/transmission-remote
'opt/etc/cron.hourly/q1.sh: line 18: syntax error near unexpected token `do
'opt/etc/cron.hourly/q1.sh: line 18: `    for ID in $LIST; do
Try the command alone on a terminal:

Code: Select all
transmission-remote -l | tail -n +2 | head -n -1 | grep 100% | grep -v Stopped | awk '{ print $1; }'


Assuming you have some active torrents, is the result a list of numbers? one per line? If that works then the problem really is in the script.
the above results in

Code: Select all

[root@Asus520gu root]$ transmission-remote -l | tail -n +2 | head -n -1 | grep 100% | grep -v Stopped | awk '{ print $1; }
'
Unexpected response: <h1>403: Forbidden</h1><p>Unauthorized IP Address.</p><p>Either disable the IP address whitelist or add your address to it.</p><p>If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.</p><p>If you're still using ACLs, use a whitelist instead.  See the transmission-daemon manpage for details.</p>-Length: 220
Content-Type: application/x-www-form-urlencoded

{"arguments":{"fields":["error","errorString","eta","id","leftUntilDone","name","peersGettingFromUs","peersSendingTÉ
rb07
Posts: 1400
Joined: Sun Aug 24, 2008 3:14 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by rb07 »

That last error, on the terminal, means you are using the daemon with access restrictions...

I use them too but I start the daemon with parameter '-a 127.0.0.1,192.168.1.*' to allow my use from my LAN and from the server itself. Or you can disable that restriction.
dheerajjotwani
Posts: 16
Joined: Fri Jan 08, 2010 9:32 am

Re: noob with asus520gu, optware, transmission 1.76, help needed

Post by dheerajjotwani »

will jsut try it by disabling the rpc whitelist. and post back
Post Reply