File: README

package info (click to toggle)
agsync 0.2-pre-6
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,016 kB
  • ctags: 1,182
  • sloc: ansic: 9,979; sh: 8,120; makefile: 86
file content (105 lines) | stat: -rw-r--r-- 3,848 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
AvantGo Synchronizer
---------------------
Michael Jarrett (JudgeBeavis@hotmail.com)


Purpose:
--------
To create a proof-of-concept that can successfully synchronize a device with
AvantGo using a desktop as an intermediary. Once we figure out how
to do so, a proper implementation can be designed and written.
This is also being used to discover the protocol between the
device and the desktop. I've outlined what has been discovered about
the inner workings of this protocol at:
http://www.mechlord.ca/~lownewulf/avantgo.html

Updates to this, and news, can also be found here.


Malsync files:
--------------
I've used an assortment of files from malsync 2.1.1, which you can
download from http://www.tomw.org/malsync. While not the entirety of
Malsync, the files included are unmodified. They can all be found
in the mal-files/ subdirectory. 

The Makefile in the mal-files/ directory will build mal-funcs.a, which
should include all the functions required for the synchronization app.


synce:
------
We currently use synce to establish a connection to the AvantGo
functionality on the device. The option from 0.1 to specify the device
by IP address has been removed.

The synce header files and libraries should be locatable in system
include and library paths. If not, edit the makefile.
 

Building:
---------
My disdain for autoconf and automake are well-known. These are simple
Makefiles that any reasonable gmake shouldn't have any trouble
with.

"make" - Builds it.
"make clean" - Cleans it.

There's no make install, since it doesn't work.


Current Status:
---------------
I've implemented all the commands that I have discovered (and have a need of)
in syncstream.{c,h}. syncmain.c implements the actual sync procedure, and
provides all the plumbing to the malsync functions.

Currently, running this SHOULD allow you to perform a synchronization!
If something goes wrong, go into your AvantGo configuration on your
device, and select "Refresh all content at next sync" and run it again.
It may make as many as three passes on the server, but should give you
your content.

Proxy support should work. The following command-line options are recognized
for use with proxy support:
 -p host:port    - Use the HTTP proxy at the specified address and port for
                   communication with AvantGo.
 -s host:port    - Use the SOCKS proxy at the specified address and port for
		   communication with AvantGo.
 -u user:pass    - For HTTP proxies only, use the specified username and password.

eg.
  ./agsync -p proxy.network.com:8080 -u mjarrett:mypass123


Several things are not supported:
- I detect almost NO error conditions - if things go wrong, it is likely
  a segfault could result, or just a complete lack of output.

- There are still a few commands that I don't recognize in the traces
that I've seen from the Windows version. Notable is the omnipresent 0x01
command and the 0x0D command.

- Too many "command" commands are sent I think: it is possible that some
of these may need filtering.

- I do not parse any extension commands! The old malsync libraries had no
relevant expansion commands yet, and the new malsync doesn't specify
even what they look like on a Pocket PC. However, it is implied in several
cases that these are strictly optional, and it hasn't hindered my
synchronization.

- Configuration resolution is not supported: in a proper synchronization,
an "accepted" configuration is stored, and then compared to the device
configuration and desktop configuration, and a new configuration is
agreed upon by merging these. It didn't seem important: the device is
considered the sole authority in synchronization.


License:
--------
Everything of mine is under the Mozilla Public License v1.1.
Every file in mal-files/ should specify the license explicitly, but as
far as I am aware, is also MPL 1.1.