The branch, master has been updated via b676e63a520e644e2737b55a61244fa8df9a10dc (commit) via 826e6a83a000156cbdbacdd2fc1fdf4c4dceac5e (commit) via 3142f76e2d181e6a3d51d5a7b9efc28f2742b911 (commit) via 2a797731a009b2a1c908b3075791f87c41d528ad (commit) via a2d0c6cec81d86722589b3afd0ab186989260869 (commit) via e31a92c44e5275ea971c052e2909a9c3ae81123a (commit) via 8860a03671adc9cb35ddffd147960b2f2dc4bd3b (commit) from f167c977d12e88fce3ac15a25c24ca5d1157a883 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit b676e63a520e644e2737b55a61244fa8df9a10dc Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jul 27 16:03:03 2009 +0200 frstrans.idl: add definition of frstrans_InitializeFileTransferAsync() metze commit 826e6a83a000156cbdbacdd2fc1fdf4c4dceac5e Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jul 27 16:02:09 2009 +0200 frstrans.idl: add definition of frstrans_AsyncPoll() metze commit 3142f76e2d181e6a3d51d5a7b9efc28f2742b911 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jul 27 16:01:11 2009 +0200 frstrans.idl: add definition of frstrans_RequestVersionVector() metze commit 2a797731a009b2a1c908b3075791f87c41d528ad Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jul 27 16:00:00 2009 +0200 frstrans.idl: add definition of frstrans_RequestUpdates() metze commit a2d0c6cec81d86722589b3afd0ab186989260869 Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jul 27 15:57:32 2009 +0200 frstrans.idl: add definition of frstrans_EstablishSession metze commit e31a92c44e5275ea971c052e2909a9c3ae81123a Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jul 27 15:56:13 2009 +0200 frstrans.idl: add definition of frstrans_EstablishConnection() metze commit 8860a03671adc9cb35ddffd147960b2f2dc4bd3b Author: Stefan Metzmacher <me...@samba.org> Date: Mon Jul 27 15:55:37 2009 +0200 frstrans.idl: add definition of frstrans_CheckConnectivity() metze ----------------------------------------------------------------------- Summary of changes: librpc/idl/frstrans.idl | 216 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 209 insertions(+), 7 deletions(-) Changeset truncated at 500 lines: diff --git a/librpc/idl/frstrans.idl b/librpc/idl/frstrans.idl index c79aabf..74f3c64 100644 --- a/librpc/idl/frstrans.idl +++ b/librpc/idl/frstrans.idl @@ -13,27 +13,151 @@ interface frstrans { /*****************/ /* Function 0x00 */ - [todo] void FRSTRANS_CHECK_CONNECTIVITY(); + WERROR frstrans_CheckConnectivity( + [in] GUID replica_set_guid, + [in] GUID connection_guid + ); /*****************/ /* Function 0x01 */ - [todo] void FRSTRANS_ESTABLISH_CONNECTION(); + typedef [v1_enum,flag(NDR_PAHEX)] enum { + FRSTRANS_PROTOCOL_VERSION_W2K3R2 = 0x00050000, + FRSTRANS_PROTOCOL_VERSION_LONGHORN_SERVER = 0x00050002 + } frstrans_ProtocolVersion; + + typedef [bitmap32bit] bitmap { + FRSTRANS_TRANSPORT_SUPPORTS_RDC_SIMILARITY = 0x00000001 + } frstrans_TransportFlags; + + WERROR frstrans_EstablishConnection( + [in] GUID replica_set_guid, + [in] GUID connection_guid, + [in] frstrans_ProtocolVersion downstream_protocol_version, + [in] frstrans_TransportFlags downstream_flags, + [out,ref] frstrans_ProtocolVersion *upstream_protocol_version, + [out,ref] frstrans_TransportFlags *upstream_flags + ); /*****************/ /* Function 0x02 */ - [todo] void FRSTRANS_ESTABLISH_SESSION(); + WERROR frstrans_EstablishSession( + [in] GUID connection_guid, + [in] GUID content_set_guid + ); /*****************/ /* Function 0x03 */ - [todo] void FRSTRANS_REQUEST_UPDATES(); + typedef enum { + FRSTRANS_UPDATE_REQUEST_ALL = 0x0000, + FRSTRANS_UPDATE_REQUEST_TOMBSTONES = 0x0001, + FRSTRANS_UPDATE_REQUEST_LIVE = 0x0002 + } frstrans_UpdateRequestType; + + typedef enum { + FRSTRANS_UPDATE_STATUS_DONE = 0x0002, + FRSTRANS_UPDATE_STATUS_MORE = 0x0003 + } frstrans_UpdateStatus; + + typedef struct { + GUID db_guid; + hyper low; + hyper high; + } frstrans_VersionVector; + + typedef [flag(NDR_PAHEX)] struct { + boolean32 present; + boolean32 name_conflict; + uint32 attributes; + NTTIME fence; + NTTIME clock; + NTTIME create_time; + GUID content_set_guid; + uint8 sha1_hash[20]; + uint8 rdc_similarity[16]; + GUID uid_db_guid; + hyper uid_version; + GUID gsvn_db_guid; + hyper gsvn_version; + GUID parent_db_guid; + hyper parent_version; + [string,charset(UTF16)] uint16 name[261]; + uint32 flags; + } frstrans_Update; + + WERROR frstrans_RequestUpdates( + [in] GUID connection_guid, + [in] GUID content_set_guid, + [in,range(0,256)] uint32 credits_available, + [in,range(0,1)] boolean32 hash_requested, + [in,range(0,2)] + frstrans_UpdateRequestType update_request_type, + [in] uint32 version_vector_diff_count, + [in,size_is(version_vector_diff_count)] + frstrans_VersionVector *version_vector_diff, + [out,ref,size_is(credits_available),length_is(*update_count)] + frstrans_Update *frs_update, + [out,ref] uint32 *update_count, + [out,ref] frstrans_UpdateStatus *update_status, + [out,ref] GUID *gvsn_db_guid, + [out,ref] hyper *gvsn_version + ); /*****************/ /* Function 0x04 */ - [todo] void FRSTRANS_REQUEST_VERSION_VECTOR(); + typedef enum { + FRSTRANS_VERSION_REQUEST_NORNAL_SYNC = 0x0000, + FRSTRANS_VERSION_REQUEST_SLOW_SYNC = 0x0001, + FRSTRANS_VERSION_REQUEST_SLAVE_SYNC = 0x0002 + } frstrans_VersionRequestType; + + typedef enum { + FRSTRANS_VERSION_CHANGE_NOTIFY = 0x0000, + FRSTRANS_VERSION_CHANGE_ALL = 0x0002 + } frstrans_VersionChangeType; + + WERROR frstrans_RequestVersionVector( + [in] uint32 sequence_number, + [in] GUID connection_guid, + [in] GUID content_set_guid, + [in,range(0,2)] frstrans_VersionRequestType request_type, + [in,range(0,2)] frstrans_VersionChangeType change_type, + [in] hyper vv_generation + ); /*****************/ /* Function 0x05 */ - [todo] void FRSTRANS_ASYNC_POLL(); + typedef struct { + GUID machine_guid; + uint32 year; + uint32 month; + uint32 day_of_week; + uint32 day; + uint32 hour; + uint32 minute; + uint32 second; + uint32 milli_seconds; + } frstrans_EpoqueVector; + + typedef struct { + hyper vv_generation; + uint32 version_vector_count; + [size_is(version_vector_count)] + frstrans_VersionVector *version_vector; + uint32 epoque_vector_count; + [size_is(epoque_vector_count)] + frstrans_EpoqueVector *epoque_vector; + } frstrans_AsyncVersionVectorResponse; + + typedef struct { + uint32 sequence_number; + WERROR status; + frstrans_AsyncVersionVectorResponse response; + } frstrans_AsyncResponseContext; + + WERROR frstrans_AsyncPoll( + [in] GUID connection_guid, + [out,ref] frstrans_AsyncResponseContext *response + ); /*****************/ /* Function 0x06 */ @@ -65,7 +189,85 @@ interface frstrans /*****************/ /* Function 0x0d */ - [todo] void FRSTRANS_INITIALIZE_FILE_TRANSFER_ASYNC(); + typedef enum { + FRSTRANS_STAGING_POLICY_SERVER_DEFAULTY = 0x0000, + FRSTRANS_STAGING_POLICY_STATGING_REQUIRED = 0x0001, + FRSTRANS_STAGING_POLICY_RESTATGING_REQUIRED = 0x0002 + } frstrans_RequestedStagingPolicy; + + typedef enum { + FRSTRANS_RDC_FILTER_GENERIC = 0x0000, + FRSTRANS_RDC_FILTER_MAX = 0x0001, + FRSTRANS_RDC_FILTER_POINT = 0x0002, + FRSTRANS_RDC_MAX_ALGORITHM = 0x0003 + } frstrans_RdcChunckerAlgorithm; + + typedef struct { + frstrans_RdcChunckerAlgorithm chunker_type; + uint8 chunker_parameters[64]; + } frstrans_RdcParameterGeneric; + + typedef struct { + [range(128,1024*16)] uint16 min_horizon_size; + [range(2,96)] uint16 max_window_size; + } frstrans_RdcParameterFilterMax; + + typedef struct { + uint16 min_chunk_size; + uint16 max_chunk_size; + } frstrans_RdcParameterFilterPoint; + + typedef [switch_type(frstrans_RdcChunckerAlgorithm)] union { + [case(FRSTRANS_RDC_FILTER_GENERIC)] + frstrans_RdcParameterGeneric filter_generic; + [case(FRSTRANS_RDC_FILTER_MAX)] + frstrans_RdcParameterFilterMax filter_max; + [case(FRSTRANS_RDC_FILTER_POINT)] + frstrans_RdcParameterFilterPoint filter_point; + } frstrans_RdcParameterUnion; + + typedef struct { + frstrans_RdcChunckerAlgorithm rdc_chunker_algorithm; + [switch_is(rdc_chunker_algorithm)] frstrans_RdcParameterUnion u; + } frstrans_RdcParameters; + + typedef enum { + FRSTRANS_RDC_VERSION = 0x0001 + } frstrans_RdcVersion; + + typedef enum { + FRSTRANS_RDC_VERSION_COMPATIBLE = 0x0001 + } frstrans_RdcVersionCompatible; + + typedef enum { + FRSTRANS_RDC_UNCOMPRESSED = 0x0000, + FRSTRANS_RDC_XPRESS = 0x0001 + } frstrans_RdcCompressionAlgorithm; + + typedef struct { + hyper on_disk_file_size; + hyper file_size_estimate; + frstrans_RdcVersion rdc_version; + frstrans_RdcVersionCompatible rdc_minimum_compatible_version; + [range(0,8)] uint8 rdc_signature_levels; + frstrans_RdcCompressionAlgorithm compression_algorithm; + [size_is(rdc_signature_levels)] + frstrans_RdcParameters rdc_filter_parameters[*]; + } frstrans_RdcFileInfo; + + WERROR frstrans_InitializeFileTransferAsync( + [in] GUID connection_guid, + [in,out,ref] frstrans_Update *frs_update, + [in,range(0,1)] boolean32 rdc_desired, + [in,out,ref] frstrans_RequestedStagingPolicy *staging_policy, + [out,ref] policy_handle *server_context, + [out,ref] frstrans_RdcFileInfo **rdc_file_info, + [out,ref,size_is(buffer_size),length_is(*size_read)] + uint8 *data_buffer, + [in,range(0,262144)] uint32 buffer_size, + [out,ref] uint32 *size_read, + [out,ref] boolean32 *is_end_of_file + ); /*****************/ /* Function 0x0e */ -- Samba Shared Repository