Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - raybob

Pages: 1 [2] 3 4
FHFS / Version 2.0 Beta - Build 4 Release & Download
« on: September 12, 2012, 09:41:04 PM »

Post bugs/problems specific to this build here.

Build 4 is directly compatible with builds 2 and 3, and can be upgraded directly, without special instructions.
To upgrade from build 2, download the 'b2 to b4' package.  For build 3, download the 'b3 to b4' package.
To upgrade from build 1, first upgrade to build 2 following the special instructions, then upgrade again with the b2 to b4 package.

Build 4 Changes:

New:    Downloads for any user exceeding the storage quota at all will be refused. (, user template.js)
New:    New global variable ^url-user added that specifies the username in the url, e.g. /.username/ (, access-authentication.tpl, user template.tpl)
New:    Added maxlengths to some newaccount inputs just to tidy up things (newaccount.tpl, ajax.submission.tpl)
New:    Admin console outgoing email section now specifically says as a hint that outgoing ports are almost always 25, 465, or 587 (admin.main.tpl)
New:    The account size input now specifically says that it doesn't apply to FTP (admin.main.tpl)
New:    ^br function can now take $1 to specify the number of breaks as %0D (functions.tpl)
New:    New button in the admin console to restart the server, mostly for refreshing IPs (admin.main.tpl, admin.javascript.js.tpl, admin.ajaxfunctions.tpl)
New:    New global javascript function whiteout('text') erases all body content with an 'expired notice', implemented in some places (global.js, admin.javascript.js.tpl)
New/Fix: If localIP fails to load in serverstart it will try to install visual c++ 2008 for php then give finding the IP another shot (serverstart.tpl)
Fix:    When saving feature settings, a harmless bug could occur where FHFS said Filezilla was unable to start though it was already running. (admin.ajaxfunctions.tpl)
Fix:    Fixed a major bug where thumbnail generation would fail entirely if a non-standard content directory was set. (generatethumbs.tpl, encodethumb.php)
Improve: When being redirected to ~validation, it now only redirects if your VID cookie actually exists and in ajax.signin only if you're trying to sign on as that user (newaccount.tpl, ajax.signin.tpl)
Improve: Small formatting change to the list of server ports in the user template, plus it now only shows the FTP ports if FTP is actually enabled. (user template.tpl)
Improve: user-file.tpl and user-folder.tpl no longer waste time getting executed for the choose public private page (user-file.tpl and user-folder.tpl)
Improve: Changed some code in deny.tpl and added ?3 for quota limitations (deny.tpl)
Improve: Some changes/simplification of the user template authentication (user template.tpl, choose public private.tpl, access-authentication.tpl)
Change:    Cookie 'validationID' is now 'VID' (newaccount.tpl, ajax.signin.tpl, ajax.validate.tpl, ajax.submission.tpl)
Change:    Reduced max number of files to upload at once from 1000 to 200 since loading pages becomes very slow with that many files. (uploader.js)
Change:    Minor formatting changes in access-authentication.tpl (access-authentication.tpl)
Change:    Some formatting changes to the tool buttons in the admin console (admin.main.tpl)
Change:    Removed the useless and potentially dangerous button to delete all sent emails (admin.main.tpl, admin.javascript.js.tpl, admin.ajaxfunctions.tpl)

HFS ~ HTTP File Server / HFS interface request
« on: September 08, 2012, 08:28:52 PM »
In the HFS interface where it says the file being downloaded in the table at the bottom, instead of just showing the name can you make it show the full URL?

That would make it significantly easier to see what users are taking up the most bandwidth.  :)

FHFS / Version 2.0 Beta - Build 3 Release & Download
« on: September 04, 2012, 11:09:01 PM »

Post bugs/problems specific to this build here.

Build 3 is directly compatible with build 2, and can be upgraded from build 2 directly, without special instructions.
To upgrade from build 1, first upgrade to build 2 following the special instructions, then upgrade again with build 3.

Build 3 Changes:

Fix:    Fixed a MAJOR bug where signing in could lock up HFS indefinitely if there were any accounts with a pending validation code (ajax.signin.tpl)
Fix:    Fixed a bug where un-sharing a public folder would not work if it was the only one that was currently public. (ajax.sharefolder.tpl)
Fix:    Firefox sometimes got upset because "charset=utf-8" wasn't declared in the user template (user template.tpl)
Improve: When checking for the correct install directory, start.vbs now uses server.dll instead of the very random alert.vbs (start.vbs)
Improve: start.vbs now launches HFS directly instead of running server.bat, not sure why I didn't do that in the first place. (start.vbs)
Improve: Very very minor changes to accounts export, year now comes first in the name, and {.save.} is used instead of {.append.} (admin.ajaxfunctions.tpl)
Improve: Reinstalling the Filezilla/Stunnnel services now makes you accept the "are you sure?" prompt when clicking the buttom (admin.javascript.js.tpl)

FHFS / Version 2.0 Beta - Build 2 Release & Download
« on: August 29, 2012, 03:23:25 AM »

Post bugs/problems specific to this build here.

Note that this build is not directly compatible with build 1, so see the instructions written on the download page when upgrading.

Build 2 Changes:

New:  When starting the server, if you aren't installed to the right folder, start.vbs will specifically let you know instead of showing just a random looking error. (start.vbs)
New:  New admin console buttons to stop and reinstall stunnel/filezilla services (admin.ajaxfunctions.tpl, admin.main.tpl, admin.javascript.tpl)
New:  Admin console user table now uses pages of 10 accounts to fix where having over ~150 accounts load could crash/overload the server. (admin.usertable.tpl, admin.main.tpl, admin.javascript.tpl)
New:  User accounts without any downloads or that haven't been logged on are shown with their name colored gray in the admin console (admin.usertable.tpl)
New:  A user's last file download date is now shown in the tooltip over their name in the admin console (admin.usertable.tpl)
New:  When a user's file is downloaded, the time is logged to their notes - meant for measuring inactivity (
New:  Pre-existing stunnel/filezilla services are deleted before FHFS re-installs them (ajax.installer.tpl)
New:  When filezilla/stunnel are called to start, ^alert is called to tell you if start fails (functions.tpl)
New:  Added an alert function to launch alert.vbs and show a windows popup box with message (functions.tpl)
Fix:    Pre.dat was incorrect for build one, read as pre-alpha, now reads beta build 2 (pre.dat)
Improve: Changed some text on the contact page to be more explanatory. (contact.tpl)
Improve: The PHP and Macro textareas on the admin page can now be resized for easier code writing (admin.main.tpl)
Improve: Entering ?noaccounts on the admin page will now also prevent the auto refresh (admin.main.tpl)
Improve: Many ajax account functions would still refresh account table on finish even with ?norefresh (admin.javascript.js.tpl)
Improve: Stopping Stunnel/FZ is now done in AND stop.bat in case HFS crashes and doesn't run the event (stop.bat)
Improve: Other improvements to stop.bat, such as telling you now what's happening and when it's finished (stop.bat)
Improve: two very very minor user template formatting changes - sometimes there was an unnecessary white space in the directory fieldset (user template.tpl)
Improve: The hashcalc return prompt now has a max height of 485px to prevent it from running off the bottom of the screen potentially hiding results (ajax.hashcalc.tpl)
Change:  Changed the name of the filezilla service to prevent conflicts. (stop.bat,, functions.tpl, ajax.installer.tpl, ftpdata-settings.xml)
Change:  Removed the restart button from the launcher because it had issues and would often crash HFS. (FHFS_Launcher.exe)
Change:  Admin Console user table refresh frequency changed from 5 minutes to 2 minutes since there is now overload protection via pages (admin.main.tpl)
Change:  ?invalidcookies changed to ?autherr ( and main page html.tpl)

Bug reports / {.exists.} with the root of a drive
« on: August 28, 2012, 08:58:29 PM »
This is pretty minor, but using {.exists.} with the root of any drive other than C:\ always returns false.

{.exists|C:\.} returns 1, while {.exists|D:\.} returns nothing, and yes, there is a D drive on my system.

This is a problem in FHFS because it prevents you from setting the content-directory to the root of a drive.

FHFS / Version 2.0.x Minor Feature Requests & Bug Reports
« on: August 25, 2012, 02:00:38 AM »
Any requests for small new features (wishlists), or general discussion about the development of 2.0.x can be held here.

For build-specific bug reports or issues related to 2.0.x, create a topic with your version number in the title.

Any feature requests/wishlists will now be considered for 2.1, which is in the planning state.  See the topic dedicated to it.

FHFS / Version 2.0 Beta Information
« on: August 25, 2012, 01:59:00 AM »
When using builds packed in .zip archives, extract the FHFS folder in the archive into "C:\program files" so for example you should find "C:\program files\FHFS\FHFS_Launcher.exe".  For 64-bit machines, still use the "Program Files" folder, without the (x86).


Here are most of the main points of FHFS 2.0 over 1.x (other than the fact that it generally works better)

*** Administrator Account+Interface
- Rename/Move Functions
- Forgot Password System
- Improved Ajax Functions
- Gallery Mode/New Thumbnail System
- Database System
- Centralized CSS
- Many Minor User TPL Improvements
- New/Improved Installer
- New Server Startup System
- SSL Certificate Generator
- Ability to Change Content Directory
- Update Notifications
- Hundreds of Major Bug Fixes
- Many Minor Security Enhancements
- Fewer VFS Entries = Improved Loading Times
- Rewritten Public Folder System/Template
- Basic PHP Integration
- Password Stored as Salted Hashes
- Rewritten and Organized Code
- Many New Macro Functions
- Embedded Resources and Base64 Images
- Global Color System

Note that 1.3.2 does contain several show-stopper bugs (mostly with changing ports), which are fixed in 2.0.

Also note that I plan on finishing development completely before I worry about documenting anything, and as always, betas are at your own risk.

That being said, there's no way to upgrade from one beta to the next.... you must export your account list in the admin console, then import it in the new installation.

PHP Information:

PHP scripts can be saved in the FHFS folder and then run with arguments...

Code: [Select]
{.^php|script|arg1 arg2.}

That will tell PHP to run script.php (in the FHFS folder) and pass arg1 and arg2.  The macro will expand to the returned data.

PHP can also be run directly inline with the PHP macro, e.g.

Code: [Select]
{.^php|echo sin(deg2rad(30)); .}

FHFS / Version 2.0 Beta - Build 1 Release & Download
« on: August 25, 2012, 01:56:53 AM »
Finally done with Build 1.  Here you go:

Let me know what you think about 2.0.  Post bugs/problems specific to this build here.

Bug reports / favicon.ico
« on: August 16, 2012, 11:33:57 PM »
I have my home VFS folder binded to a real folder which contains a custom logo entitled 'favicon.ico'.

Sadly, when I go to /favicon.ico in my browser, HFS shows its own favicon rather than my custom one in the vfs root.

Bug reports / %item-url% exception
« on: July 17, 2012, 09:32:00 PM »
See the attached file, start at the bottom and go up a bit to where it says %item-url%.

This is becoming a problem because without valid input, the thumbnail generation program hangs the entire server indefinitely.

A temporary fix for this is replacing %item-url% with %url%%item-name%

Bug reports / {.delete.} and bin=0
« on: July 16, 2012, 05:38:04 PM »
Using {.delete|a|bin=0.} does not work when "a" points to a folder.

HFS ~ HTTP File Server / Macro requests
« on: July 15, 2012, 05:08:08 AM »
Could you possibly create macros to a) remove or at least rename a VFS item, b) remove an account, and c) sort the account list like you can do in the GUI.

If you don't want to create the first two for security concerns, I understand but consider that even without removing them it's still possible to completely destroy any information they contain or purpose they have even if they still inevitably exist.  For example:

Code: [Select]
{.set account|person|enabled=0|newname=[deleted]|notes=|redirect=.}

for destroying an account or for a VFS item using overwrite with a new, blank folder:

Code: [Select]
{.add folder|virtual|folder|overwrite=1|diff template=nothing.tpl.}

Bug reports / function arguments not passing through {.load.}
« on: July 14, 2012, 08:49:52 PM »
I'm not sure if this was even intended to work, but it would be great if it could.

When using ^function|a|b|c , if the function is something like this {.set|function|{:{.load|test.tpl.}:}.}  and test.tpl contains $1 $2 and $3, then the a,b,c parameters are not passed through into test.tpl.  Test.tpl would be loaded with $1 $2 and $3 staying just like that and not expanding to the parameters a,b,c.

Maybe you could even make it so you could pass arguments into {.load.} directly like load|a|b|c  :)

HTML & templates / Rewriting a file table built client-side
« on: July 03, 2012, 07:28:06 PM »
So, I had this really cool idea.  I have a plan to rewrite a least the %list% part of HFS into a javscript object that is built client-side.

This would take a while to write but the benefits are that it would make it orders of magnitude easier to create a more interactive webpage, with better ajax functions and easier jquery.  Basically rather than HFS building all the HTML, it would simply insert the data for each file into this javascript object below, and then it would be built clientside.  To change something on the page would only require setting the new value in the JS object (since all the data is already in the javascript space) and then just running a function to rebuild everything.  It would also potentially save some build-time server side.

Here's a very simple draft of how it could work.

Code: [Select]

<html><body onload=";" ><script type="text/javascript" src=""></script>

<style type="text/css"> td { padding:8px; } </style>

<script type="text/javascript">

/* There is the main containing object, inside there are two arrays, one for folders, one for files,
each part of each array contains one object per file with the specific properties within that object.
So it's one big object containing 2 arrays each containing x number of objects each with properties.
Also inside the big main object is the function 'build' that puts everything together on the page. */

content = {

    folders: [{
        "name": "documents",
        "size": 27928338,
        "hits": 27,
        "modified": "6/13/2012 10:41:35 PM"
    }, {
        "name": "music",
        "size": 48929338,
        "hits": 52,
        "modified": "6/13/2012 10:41:35 PM"

    files: [{
        "name": "file.mp3",
        "size": 10384171,
        "hits": 2,
        "modified": "6/13/2012 10:41:35 PM"
    }, {
        "name": "fun.docx",
        "size": 502858,
        "hits": 5,
        "modified": "6/13/2012 10:41:35 PM"
    }, {
        "name": "anotherfile.pdf",
        "size": 2411725,
        "hits": 5,
        "modified": "6/13/2012 10:41:35 PM"

    build: function () {

        for (var n = 0; n < content.folders.length; n++) {

            var name = content.folders[n].name;
            var size = content.folders[n].size;
            var hits = content.folders[n].hits;
            var modified = content.folders[n].modified;

            var thehtml = '<tr><td>Folder</td><td>' + name + '</td><td>' + size + '</td><td>' + hits + '</td><td>' + modified + '</td></tr>';



        for (var n = 0; n < content.files.length; n++) {

            var name = content.files[n].name;
            var size = content.files[n].size;
            var hits = content.files[n].hits;
            var modified = content.files[n].modified;

            var thehtml = '<tr><td>File</td><td>' + name + '</td><td>' + size + '</td><td>' + hits + '</td><td>' + modified + '</td></tr>';




<table id="filetable"></table>


Let me know what you think.

Bug reports / Invalid notes key hangs HFS indefinitely at 100% CPU
« on: April 06, 2012, 09:40:23 PM »
If you try to use {.get account|a|notes key=.} and the key you're trying to find doesn't exist but exists as part of the end of another key, HFS will hang indefinitely at 100% CPU.

For example, if Raybob has a notes key of 12345-data=key:

{.get account|raybob|notes key=12345-data.} returns key.
{.get account|raybob|notes key=12345-dat.} returns nothing (as it should).
{.get account|raybob|notes key=2345-data.} ** Crashes HFS, as the string '2345-data' is at the end of '12345-data'. **
{.get account|raybob|notes key=2345-dat.} returns nothing (as it should).

This becomes a problem when I'm trying to load a key with a certain "ID", and when in certain cases the ID doesn't exist, the key is checked anyway.  For example it crashes when something like {.get account|data|notes key={.^id.}--data.} turns into {.get account|data|notes key=--data.}, because the ID expands to nothing, and many other keys exist that end in --data.

Pages: 1 [2] 3 4