Jump to content
major_shepard

ArmA3Sync - launcher and addons synchronization software for ArmA 3

Recommended Posts

Okay ran into two issues today.

My current setup:

I have a single local repository folder on my server (its the repository and dedicated server at the same time). The Arma3Sync client that runs on the server has three repositories configured. One is an external repository that I sync from (mirror its content to my local repository folder), it's an FTP repository. Then there is one HTTP repository that I strictly use to build my local repository with (from the local repository folder). Finally there is another HTTP repository that I strictly use to sync the dedicated server directory with, the local repository folder being the source (I like to only keep a subset of mods on the dedicated server).

Updates usually get synced from the external repository first, then the local repository gets build and finally I sync the dedicated server directory to the local repository.

1: Sync fails via HTTP for changed files

The external repository updated CBA today. So I synced my local repository to it and had the local repository rebuild. That seemed to work just fine. But syncing the dedicated server directory via HTTP fails. The file that it currently chokes on is "cba_common.pbo". I will send you the file from my dedicated server directory (the "old" version that the ZSYNC process is trying to update). Here is what the Apache access logs look like:

127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo.zsync HTTP/1.1" 200 440 "-" "jazsync"
127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo HTTP/1.1" 200 202566 "-" "Java/1.7.0_15"
127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo HTTP/1.1" 206 55263 "-" "jazsync"

2: Destination folder contents get mixed up

When trying to sync my dedicated server directory to my local repository, the file list displayed by A3S contains all the .ZSYNC files in blue, but there is not a single .ZSYNC file actually present in the dedicated server directory. It seems as though A3S is reading and displaying the file list from both the destination folders that I have configured. The selected one is the dedicated server directory, the second one configured (used for the other two configured "repositories") is the local repository directory. "Auto-Discover" is turned OFF, though I might have had it ON at one point to see what it does.

By the way, there are two small issues with the "hide local content" option as well:

1. When you right-click and chose "hide local content", "(hided)" won't show if the local content is not present in the @folder, but rather in @folder\subfolder and is then only shown for the subfolder.

2. It should read "(hidden)", not "(hided)".

Share this post


Link to post
Share on other sites

Hi,

Great tool.

Minor issue: I have to close the program manually, if i want changes to be saved.

If i, as i like it, use the option - Close at game launch -, no changes at all will be saved...

cu

SerialMum

Share this post


Link to post
Share on other sites
Okay ran into two issues today.

My current setup:

I have a single local repository folder on my server (its the repository and dedicated server at the same time). The Arma3Sync client that runs on the server has three repositories configured. One is an external repository that I sync from (mirror its content to my local repository folder), it's an FTP repository. Then there is one HTTP repository that I strictly use to build my local repository with (from the local repository folder). Finally there is another HTTP repository that I strictly use to sync the dedicated server directory with, the local repository folder being the source (I like to only keep a subset of mods on the dedicated server).

Updates usually get synced from the external repository first, then the local repository gets build and finally I sync the dedicated server directory to the local repository.

1: Sync fails via HTTP for changed files

The external repository updated CBA today. So I synced my local repository to it and had the local repository rebuild. That seemed to work just fine. But syncing the dedicated server directory via HTTP fails. The file that it currently chokes on is "cba_common.pbo". I will send you the file from my dedicated server directory (the "old" version that the ZSYNC process is trying to update). Here is what the Apache access logs look like:

127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo.zsync HTTP/1.1" 200 440 "-" "jazsync"
127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo HTTP/1.1" 200 202566 "-" "Java/1.7.0_15"
127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo HTTP/1.1" 206 55263 "-" "jazsync"

The problem with the cba_common.pbo comes from the fact that on your http server, the metadata in the .zsync file /@CLF_Coop/addons/cba_common.pbo.zsync does not match the file /@CLF_Coop/addons/cba_common.pbo.

I have downloaded the file /@CLF_Coop/addons/cba_common.pbo, put it in my http repository and build the repository. Then I synced the cba_common.pbo file from my repository against the "old" cba_common.pbo you provided by PM => no error.

I also tried to sync CBA Beta 5 (new one) in my http repository against CBA Beta 4 (old one) => no error.

So I guess you should rebuild your http repository using the Build command on the machine hosting the repository (i.e no manual copy-paste, upload or whatever sync process).

2: Destination folder contents get mixed up

When trying to sync my dedicated server directory to my local repository, the file list displayed by A3S contains all the .ZSYNC files in blue, but there is not a single .ZSYNC file actually present in the dedicated server directory. It seems as though A3S is reading and displaying the file list from both the destination folders that I have configured. The selected one is the dedicated server directory, the second one configured (used for the other two configured "repositories") is the local repository directory. "Auto-Discover" is turned OFF, though I might have had it ON at one point to see what it does.

This is normal behavior. ArmA3Sync sync process is repository content against player content not repository content against repository content. You should never sync the metadata files (/.a3s,*.zsync).

By the way, there are two small issues with the "hide local content" option as well:

1. When you right-click and chose "hide local content", "(hided)" won't show if the local content is not present in the @folder, but rather in @folder\subfolder and is then only shown for the subfolder.

2. It should read "(hidden)", not "(hided)".

ok.

---------- Post added at 11:18 AM ---------- Previous post was at 11:17 AM ----------

Hi,

Great tool.

Minor issue: I have to close the program manually, if i want changes to be saved.

If i, as i like it, use the option - Close at game launch -, no changes at all will be saved...

cu

SerialMum

ok thanks.

Edited by Major_Shepard

Share this post


Link to post
Share on other sites

hey there

im running IIS on my very own server and i want to use the HTTP option for this

sadly

IIS is not willed to let your sync files being transfered as they got no file extension (also i dont want to allow no file extensions as this is a giant security leak!)

could you please add any file extension to the repository files? (or at least make it possible to use them)

thx

X39

Share this post


Link to post
Share on other sites
The problem with the cba_common.pbo comes from the fact that on your http server, the metadata in the .zsync file /@CLF_Coop/addons/cba_common.pbo.zsync does not match the file /@CLF_Coop/addons/cba_common.pbo.

I have downloaded the file /@CLF_Coop/addons/cba_common.pbo, put it in my http repository and build the repository. Then I synced the cba_common.pbo file from my repository against the "old" cba_common.pbo you provided by PM => no error.

I also tried to sync CBA Beta 5 (new one) in my http repository against CBA Beta 4 (old one) => no error.

So I guess you should rebuild your http repository using the Build command on the machine hosting the repository (i.e no manual copy-paste, upload or whatever sync process).

Well, I thought that's what I did.

1. Build repository C:\A3Repository with old data

2. Sync updated files from external repository into repository C:\A3Repository (that should be like copying new file versions into the repository?)

3. Build my HTTP repository C:\A3Respository

4. Have that HTTP repository C:\A3Repository synced to C:\A3Server

Where did I go wrong?

This is normal behavior. ArmA3Sync sync process is repository content against player content not repository content against repository content. You should never sync the metadata files (/.a3s,*.zsync).

Well, I am talking about step 4. from my list above. I don't understand why A3S shows the ZSYNC files in blue (locally present but not in repository) when

a) From the list of destination folders (C:\A3Repository and C:\A3Server) I have picked C:\A3Server

b) Not a single ZSYNC file is present in C:\A3Server

Since I have specifically selected C:\A3Server as the destination folder, am I wrong to expect A3S to only compare this one folder vs the repository if "Auto-Discover" is off?

Share this post


Link to post
Share on other sites
giant security leak? that's new ^^

well it is ...

but since the source code is available i will compile my own version for this


just saw that there are some streams youre never closing

are you aware of this?


new system, new issues

the application is creating ZSync files for the web.config file of the webpage (file from IIS)

Edited by X39

Share this post


Link to post
Share on other sites

I am interested to know about the security and no file extension ?

+ If you can generate a SVN patch for the streams your are welcome ^^

Edited by Major_Shepard

Share this post


Link to post
Share on other sites
I am interested to know about the security and no file extension ?

+ If you can generate a SVN patch for the streams your are welcome ^^

problem is basicly because you have to disable the mime type filters so that in theory anyone could up/download anything from the specific page

pretty simple :F

well ... i would help to develop this but im still busy with XMedSys + a insurgency module (more with the module currently as its part of my upcomming mod XLib)

Share this post


Link to post
Share on other sites
the application is creating ZSync files for the web.config file of the webpage (file from IIS)

I agree it would be very nice to exclude certain files from the repository and have no ZSYNC files generated for these. Same thing happened to me when I tried to use ".htaccess" in my repository, using the Apache config file to work around this for now, but not everyone is going to have that luxury.

Share this post


Link to post
Share on other sites

Your are not supposed to add extra files into the repository for whatever reasons. Edit the Apache conf file instead of adding a .htaccess file.

Edited by Major_Shepard

Share this post


Link to post
Share on other sites
Your are not supposed to add extra files into the repository for whatever reasons. Edit the Apache conf file instead of adding a .htaccess file.

so

me again ...

im having some trouble after i added a file extension to the autoconfig etc. files (.a3s)

basicly i edited the static variables at DataAccessConstants-->REPOSITORY (the collection below) and added simply a ".a3s" to them

package fr.soe.a3s.dao;

public interface DataAccessConstants {


   /** Resources */
   // String INSTALLATION_PATH = System.getProperty("user.dir");
   String INSTALLATION_PATH = ".";


   String HOME_PATH = System.getProperty("user.home");
   String CONFIGURATION_FILE_PATH = INSTALLATION_PATH
           + "/resources/configuration/a3s.cfg";
   String PREFERENCES_FILE_PATH = INSTALLATION_PATH
           + "/resources/configuration/a3s.prefs";
   String PROFILES_FOLDER_PATH = INSTALLATION_PATH + "/profiles";
   String REPOSITORY_FOLDER_PATH = INSTALLATION_PATH + "/resources/ftp";
   String TEMP_FOLDER_PATH = INSTALLATION_PATH + "/resources/temp";
   String BIN_FOLDER_PATH = INSTALLATION_PATH + "/resources/bin";


   /** Extensions */
   String PROFILE_EXTENSION = ".a3s.profile";
   String REPOSITORY_EXTENSION = ".a3s.repository";
   String AUTOCONFIG_EXTENSION = ".a3s.autoconfig";
   String ZSYNC_EXTENSION = ".zsync";
   String PART_EXTENSION = ".part";

   /** BIN */
   String ZSYNC_EXE = "resources\\bin\\zsync.exe";


   /** FTP */
   String UPDATE_REPOSITORY = "/ArmA3/ArmA3Sync/download";
   String UPDATE_REPOSITORY_DEV = "/ArmA3/ArmA3Sync/development";
   String UPDTATE_REPOSITORY_ADRESS = "www.sonsofexiled.fr";
   int UPDTATE_REPOSITORY_PORT = 21;
   String UPDTATE_REPOSITORY_LOGIN = "anonymous";
   String UPDTATE_REPOSITORY_PASS = "";


   /** REPOSITORY */
   String A3S_FOlDER_NAME = ".a3s";
   String A3S_FOlDER_PATH = "/.a3s";
   String SERVERINFO_FILE_PATH = "/.a3s/serverinfo.a3s";
   String SYNC_FILE_PATH = "/.a3s/sync.a3s";
   String AUTOCONFIG_FILE_PATH = "/.a3s/autoconfig.a3s";
   String CHANGELOG_FILE_PATH = "/.a3s/changelogs.a3s";
   String EVENTS_FILE_PATH = "/.a3s/events.a3s";
   String AUTOCONFIG = "autoconfig.a3s";
   String SERVERINFO = "serverinfo.a3s";
   String SYNC = "sync.a3s";
   String CHANGELOGS = "changelogs.a3s";
   String EVENTS = "events.a3s";


}


but now the client is not able to sync with the repository (autoconfig import is working fine)

so my question now is

where is it also required to edit so that it would be working?

thx

X39


located the issue

could it be possible that its required to have an index.html or at least file listening enabled on the webserver to be able to use A3S?

because my webserver usually disallows the filetreeview (the situation without an index file which is usually enabled for apache servers)

if thats true

that would be a more big security issue then the thing with mime types

Edited by X39

Share this post


Link to post
Share on other sites

Still don't get the thing with the "big security issue".

Here is my repo => http://www.sonsofexiled.fr/a3s-repository/

Could you please try to hack this?

Again the next version of ArmA3Sync fixes the sync issue with repo protected by password. So no need to hide the indexes if you don't want anyone browse the repo from a web browser.

You just config your http server to have a password on the repository url and you good to go.

Edited by Major_Shepard

Share this post


Link to post
Share on other sites
Still don't get the thing with the "big security issue".

Here is my repo => http://www.sonsofexiled.fr/a3s-repository/

Could you please try to hack this?

Again the next version of ArmA3Sync fixes the sync issue with repo protected by password. So no need to hide the indexes if you don't want anyone browse the repo from a web browser.

You just config your http server to have a password on the repository url and you good to go.

gnargh ... kk

i will follow

but still

my repository is not working:

http://repo.unitedtacticalforces.de/KV13/.a3s/autoconfig

used default variant of the tool

whats wrong?

Share this post


Link to post
Share on other sites
gnargh ... kk

i will follow

but still

my repository is not working:

http://repo.unitedtacticalforces.de/KV13/.a3s/autoconfig

used default variant of the tool

whats wrong?

I guess your server is not recognizing "anonymous" user or something to see with authorization config on your server. see HttpDAO line 72.

Edited by Major_Shepard

Share this post


Link to post
Share on other sites
I guess your server is not recognizing "anonymous" user or something to see with authorization config on your server. see HttpDAO line 72.

well

im using a default IIS 7.0 server with default config but the mime types and directory browsing enabled for that

when im trying to connect via the server everything works fine

just the external connection seems to make problems : /

so what to do now?


log files are empty (no connection recognized with the http server when using A3S)

Edited by X39

Share this post


Link to post
Share on other sites

HttpDAO line 72 change it to

if (!(login.equalsIgnoreCase("anonymous"))) {

String encoding = Base64Coder.encodeLines((login + ":" + password)

.getBytes());

httpURLConnection.setRequestProperty("Authorization", "Basic "

+ encoding.substring(0, encoding.length() - 1));

}

Seems IIS 7 server recognize "IUSR" user by default for anonymous connection and not "anonymous".

Share this post


Link to post
Share on other sites
HttpDAO line 72 change it to

Seems IIS 7 server recognize "IUSR" user by default for anonymous connection and not "anonymous".

yep ^^

works fine

thx for that

X39

Share this post


Link to post
Share on other sites
Your are not supposed to add extra files into the repository for whatever reasons. Edit the Apache conf file instead of adding a .htaccess file.

This is an enhancement request. Not everyone has access to the Apache conf file (for example "sonic" a couple of pages back). You normally only get that on "full servers". So being able to exclude web server config files from the repository would be quite useful.

Share this post


Link to post
Share on other sites
Okay ran into two issues today.

1: Sync fails via HTTP for changed files

The external repository updated CBA today. So I synced my local repository to it and had the local repository rebuild. That seemed to work just fine. But syncing the dedicated server directory via HTTP fails. The file that it currently chokes on is "cba_common.pbo". I will send you the file from my dedicated server directory (the "old" version that the ZSYNC process is trying to update). Here is what the Apache access logs look like:

127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo.zsync HTTP/1.1" 200 440 "-" "jazsync"
127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo HTTP/1.1" 200 202566 "-" "Java/1.7.0_15"
127.0.0.1 - - [03/Mar/2014:16:54:23 +0100] "GET /A3Repository/@CLF_Coop/addons/cba_common.pbo HTTP/1.1" 206 55263 "-" "jazsync"

I am getting similar problems with the delta patching not working on some files.

I am running Apache on ubuntu (linode), the repo has been setup locally on the the server using the a3sync command line interface.

the repo has been rebuilt multiple times and the only solution so far has been to delete the file locally and force a3sync to download the file in its entirety.

Its happened on a few mods, but the ones that spring to mind at the moment are a3mp and cba.

I can send you a link to our host if that will help.

Cheers

C.

Share this post


Link to post
Share on other sites

I've just been trying to add authentication to apache for the repo... it works fine connecting to it manually (go to address login and download a file) and it appears to sort of work with a3sync... but it appears like it forgets to send the username when it downloads the actual file..

111.69.102.255 - test [12/Mar/2014:11:36:53 +0000] "GET / HTTP/1.1" 200 9795

111.69.102.255 - test [12/Mar/2014:11:36:53 +0000] "GET /@bike/Addons/sounds.pbo.zsync HTTP/1.1" 200 908

111.69.102.255 - - [12/Mar/2014:11:36:54 +0000] "GET /@bike/Addons/sounds.pbo HTTP/1.1" 401 484

I'll pm you the address and a test username and password...

Share this post


Link to post
Share on other sites

As already said, sync does not currently work with http repo protected by password. Fixed in next update.

---------- Post added at 03:00 PM ---------- Previous post was at 01:49 PM ----------

I need the "old" file you get error when synchronizing your repo with, thanks.

Edited by Major_Shepard

Share this post


Link to post
Share on other sites

ArmA3Sync 1.2 Update 4

Download

Use Check for Updates in the Help menu

Changelog

- Fixed: settings not saved when ArmA3Sync is set to close at game start in preferences.

- Fixed: failed to sync on a http addons repository protected by login and password.

- Fixed: duplicating a profile live available addons list empty.

Edited by Major_Shepard

Share this post


Link to post
Share on other sites
Guest

Thanks for sending us of the new version :cool:

New release frontpaged on the Armaholic homepage.

===================================================

We have also "connected" these pages to your account (Major_Shepard) on Armaholic.

This means in the future you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have.

When you have any questions already feel free to PM or email me!

** Note: since this is a project on which more people are working we will contact you in the future to discuss how you want this to be setup on Armaholic.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×