The Update-Check functionality in SiDiary
=========================================

1) Why online update-checking?
2) How about my privacy? Which data will be exchanged?
3) Is there anything which I must configure to use the update-check? - No. :-)
4) Technical background
5) Example of the communication




1) Why online update-checking?
------------------------------
Since version 4.0 the windows desktop client of SiDiary has included an automated online checking functionality. These routine is using an available internet connection to look at www.sidiary.org for newer releases of program files, language packs and nutrition databases.

Why did you implement such a function? There's the update info service after all?!
Well this question isn't hard to answer: If you have registered for the update-info, you have received an email for every major update, that's true.

But the project has become a very fast growing thing which has forced me to now only send update-infos for really important major updates or for hotfix-warnings. In fact I cannot spend that much time to send out an info email for all smaller improvements or language file updates etc. because just sending the emails to the 5-digit user numbers lasts ~6 hours on the mail server...

Of course I'm very happy that SiDiary seems to be one of your favorites and that it hopefully is helping you for your therapy but I have to deal with my sparetime slipping through my fingers and have to address all work for this project with priorities and concentrate on the main things. I hope that you'll understand that this mechanism for spreading a new release will help me saving time...

But there's another important reason: In the program history it just happened once that I have had to send out a urgent hotfix warning. There was a bug in a very early version which caused an incorrect data storage :-(
For these cases the update check functionality will help also because I can leave you an anonymous message on the server that you should update to or fix if you are concerned by some trouble!



2) How about my privacy? Which data will be exchanged?
------------------------------------------------------
I tried to implement the update check as simple as possible because I know that there are many, many users who haven't got those deep technical skills and I tried to keep you away from complicated configuring procedures.
Fr die vielen teilweise technisch unbedarften Anwender habe ich bewusst versucht, den SiDiary will check in the background (as it checks for data synchronizing with a mobile device PPC/Smartphone) if it can reach the server with the URL www.sidiary.org.

The server will answer with the informations about the most recent versions of all relevant files. If SiDiary detects one or more files being out of date, it will show you a detailed list with all files and with all changes.

This communication is done with just a few kbytes!

SiDiary.exe will send a HTML-request to the server by using the following parameters:
 * the selected program language (3 characters)
 * if you are using the PPC version (1 characters)
 * if you ob Sie die Smartphone-Version verwenden (1 characters)
 * a randomly generated number as a session-ID for the back-data 
   (max. 10 characters)


I can assure that beside of the menioned data nothing else will be send! Of course you can check this with a Firewall or sniffer tools and I'm sure that some of the technical pros will do this anyway...Most of you will use much more personal data on the internet at i.e. online shops and this functionality will help me saving lot of time which I will spend for further improvements...

(Please see also the examples at the end of this file)




3) Is there anything which I must configure to use the update-check?
--------------------------------------------------------------------
No, there isn't. :-)
The check for newer versions will be done automatically but of course you can start this check also manually with 'Settings->More settings->Update-Check'

You can specify the check frequency. The default is once per day but you can enlarge this interval up to once per month.

By the way: SiDiary will not download a single file to your computer! It's just a notification about possible updates: It's still your decision which files you want to update and which not. You have still full control about the updates!




4) Technical background
-----------------------
SiDiary is talking to the server on port 80 with a HTTP-conform request! There's nothing like tunneling this port - pure HTML message!
The request which will be send to www.sidiary.org could be even done manually with your browser too. All data is not encrypted and can be read by anyone since there is no exchange of personal details.

SiDiary is using the WinHTTP-API Dlls or as a fallback the InternetExplorer-object (ShDocview.dll), to receive the answer from the server. It will use a proxy if you have configured such on your system. (The IE-browser-Object will only be used if the API-request fails! I would expect that it the most cases the update check can be done without the need for having IE intalled on your machine.)

If you are connecting to the internet with a RAS connection, don't worry: Of course SiDiary will NOT establish a RAS connectionS in the background! It will detect, if such a connection is currently active and the use it too for the online check. If no RAS connection is active SiDIary will not perform the online check!

If the update check could not be done for more than a week, SiDIary will show you a message about this, so that you can do the check manually if you want that.




5) Example of the communication
-------------------------------
Here you can see which data will leave your computer on port 80 (which is used i.e. by your favorite browser, Internet Explorer, Navigator, Opera etc.) and which data will come back from the server:

SiDiary.exe will send (as a http-compliant request):

http://www.sidiary.org/default.asp?UpdateCheck=DEA104711


(No further data will leave your computer with SiDiary!)

www.sidiary.org will answer with the following HTML data:
(The real message depends naturally on the available downloads on the server)

[Version-Info]
Number=3
Session=4711
1=Win32
2=LangEN
3=NutDE

[Win32]
DESC=SiDiary Windows
VERSION=3.6.192
DATE=20041015143512
SHOW_AS_UPDATE=True
FILENAME=SiDiaryWin32Client.zip

[LangEN]
DESC=Language pack English
VERSION=4.0.248
DATE=20041015163457
SHOW_AS_UPDATE=True
FILENAME=LangPack.zip

[NutDE]
DESC=Nahrungsmittel Deutsch
VERSION=1.0
DATE=20041015000000
SHOW_AS_UPDATE=True
FILENAME=NutritionDe.zip

[NutEN]
DESC=Nutritions English
VERSION=1.0
COMMENT=Not available yet :-o
SHOW_AS_UPDATE=True
FILENAME=NutritionEn.zip

[News_1]
NEWS_DATE=20041013000000
NEWS_VERSION=4.0.243
HEADER=Demo-berschrift
CONTENT=Dummy-Newseintrag

[NEWS]
Number=1
