- NSArray *processList = [rootProxy serverProcessList];
-
- NSNumber *pid;
- u_int32_t pidNum;
- NSString *name;
-
- PacketHeader header;
-
- char *buffer, *ptr;
-
- // PROCESS COUNT
- int length = sizeof(u_int32_t);
- int lengthAfter;
-
- u_int32_t processCount = [processList count];
-
- int i, max = processCount;
-
- header.checksum = RandomChecksum();
- header.function = 2;
-
- for ( i = 0; i < max; i++ )
- {
- pid = [[processList objectAtIndex:i] objectForKey:@"NSApplicationProcessIdentifier"];
- name = [[processList objectAtIndex:i] objectForKey:@"NSApplicationName"];
-
- // PID NAME
- length += sizeof(u_int32_t) + [name length] + 1;
- }
-
- header.size = length;
- length += sizeof(header);
- // HEADER
-
- if ( (buffer = (char *)malloc( length ))==NULL )
- {
- NSLog( @"sendProcessList failed" );
- return;
- }
-
- ptr = buffer;
-
- COPY_TO_BUFFER( ptr, &header, sizeof(header) );
- COPY_TO_BUFFER( ptr, &processCount, sizeof(processCount) );
-
- for ( i = 0; i < max; i++ )
- {
- pidNum = [[[processList objectAtIndex:i] objectForKey:@"NSApplicationProcessIdentifier"] unsignedLongValue];
- name = [[processList objectAtIndex:i] objectForKey:@"NSApplicationName"];
-
- COPY_TO_BUFFER( ptr, &pidNum, sizeof(pid) );
- COPY_TO_BUFFER( ptr, [name lossyCString], [name length] + 1 );
- }
-
- lengthAfter = length;
-
- if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length )
- {
- NSLog( @"sendProcessList failed" );
- }
-
- free( buffer );
-}
-
-
-- (void)sendSearchFinished
-{
- PacketHeader header;
- int length = sizeof(header);
-
- header.checksum = RandomChecksum();
- header.function = 6;
- header.size = 0;
-
- if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) )
- {
- NSLog( @"sendSearchFinished failed" );
- }
-}
-
-- (void)sendVariableList:(TCaddress const *)data amount:(int)amount
-{
- PacketHeader header;
- int length;
- int lengthAfter;
-
- char *buffer, *ptr;
-
- header.checksum = RandomChecksum();
- header.function = 7;
- header.size = sizeof(amount) + sizeof(maxSearchResultsAmount) + TCAddressSize*maxSearchResultsAmount;
- // AMOUNT MAX AMOUNT DATA
-
- lengthAfter = length = header.size + sizeof(header);
-
- if ( (buffer = (char *)malloc( length )) == NULL )
- {
- NSLog( @"sendVariableList:amount: failed" );
- return;
- }
-
- ptr = buffer;
-
- COPY_TO_BUFFER( ptr, &header, sizeof(header) );
- COPY_TO_BUFFER( ptr, &amount, sizeof(amount) );
- COPY_TO_BUFFER( ptr, &maxSearchResultsAmount, sizeof(maxSearchResultsAmount) );
- COPY_TO_BUFFER( ptr, data, TCAddressSize*maxSearchResultsAmount );
-
- if ( SendBuffer( sockfd, buffer, &length ) == -1 || lengthAfter != length )
- {
- NSLog( @"sendVariableList:amount: failed" );
- }
-
- free( buffer );
-}
-
-- (void)sendChangeFinished
-{
- PacketHeader header;
- int length = sizeof(header);
-
- header.checksum = RandomChecksum();
- header.function = 9;
- header.size = 0;
-
- if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) )
- {
- NSLog( @"sendChangeFinished failed" );
- }
-}
-
-- (void)sendError:(NSString *)msg fatal:(BOOL)fatal
-{
- PacketHeader header;
- int length;
- int lengthAfter;
-
- u_int32_t type = (fatal)? 1:0;
-
- char *buffer, *ptr;
-
- header.checksum = RandomChecksum();
- header.function = 11;
- header.size = sizeof(type) + [msg length] + 1;
- // FATAL STRING
-
- lengthAfter = length = header.size + sizeof(header);
-
- if ( (buffer = (char *)malloc( length )) == NULL )
- {
- NSLog( @"sendError:fatal: failed" );
- return;
- }
-
- ptr = buffer;
-
- COPY_TO_BUFFER( ptr, &header, sizeof(header) );
- COPY_TO_BUFFER( ptr, &type, sizeof(type) );
- COPY_TO_BUFFER( ptr, [msg lossyCString], [msg length] + 1 );
-
- if ( SendBuffer( sockfd, buffer, &length ) == -1 || lengthAfter != length )
- {
- NSLog( @"sendError:fatal: failed" );
- }
-
- free( buffer );
-}
-
-- (void)sendVariableValue:(u_int32_t)index
-{
-
-}
-
-- (void)sendUndoFinished
-{
- PacketHeader header;
- int length = sizeof(header);
-
- header.checksum = RandomChecksum();
- header.function = 15;
- header.size = 0;
-
- if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) )
- {
- NSLog( @"sendUndoFinished failed" );
- }
-}
-
-- (void)sendRedoFinished
-{
- PacketHeader header;
- int length = sizeof(header);
-
- header.checksum = RandomChecksum();
- header.function = 17;
- header.size = 0;
-
- if ( SendBuffer( sockfd, (char *)(&header), &length ) == -1 || length != sizeof(header) )
- {
- NSLog( @"sendRedoFinished failed" );
- }
-}
-
-- (void)sendUndoRedoStatus
-{
- PacketHeader header;
- int length;
- int lengthAfter;
-
- u_int32_t undoCount = (u_int32_t)[searchResults count];
- u_int32_t redoCount = (u_int32_t)[searchResultsUndone count];
-
- char *buffer, *ptr;
-
- header.checksum = RandomChecksum();
- header.function = 19;
- header.size = 2 * sizeof(u_int32_t);
-
- length = lengthAfter = sizeof(header) + header.size;
-
- if ( (buffer = (char *)malloc( length )) == NULL )
- {
- NSLog( @"sendSetTargetPID: failed" );
- }
-
- ptr = buffer;
-
- COPY_TO_BUFFER( ptr, &header, sizeof(header) );
- COPY_TO_BUFFER( ptr, &undoCount, sizeof(undoCount) );
- COPY_TO_BUFFER( ptr, &redoCount, sizeof(redoCount) );
-
- if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length )
- {
- NSLog( @"sendUndoRedoStatus: failed" );
- }
-
- free( buffer );
-}
-
-- (void)sendAppLaunched:(NSDictionary *)appInfo
-{
- PacketHeader header;
-
- char *buffer, *ptr;
-
- int length = 0;
- int lengthAfter;
-
- u_int32_t pid = [[appInfo objectForKey:@"NSApplicationProcessIdentifier"] unsignedLongValue];
- NSString *name = [appInfo objectForKey:@"NSApplicationName"];
-
- // PID NAME
- length += sizeof(u_int32_t) + [name length] + 1;
-
- header.checksum = RandomChecksum();
- header.function = 21;
- header.size = length;
-
- length += sizeof(header);
- // HEADER
-
- if ( (buffer = (char *)malloc( length ))==NULL )
- {
- NSLog( @"sendAppLaunched: failed" );
-
- return;
- }
-
- ptr = buffer;
-
- COPY_TO_BUFFER( ptr, &header, sizeof(header) );
- COPY_TO_BUFFER( ptr, &pid, sizeof(pid) );
- COPY_TO_BUFFER( ptr, [name lossyCString], [name length] + 1 );
-
- lengthAfter = length;
-
- if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length )
- {
- NSLog( @"sendAppLaunched: failed" );
- }
-
- free( buffer );
-}
-
-
-- (void)sendAppQuit:(NSDictionary *)appInfo
-{
- PacketHeader header;
-
- char *buffer, *ptr;
-
- int length = 0;
- int lengthAfter;
-
- u_int32_t pid = [[appInfo objectForKey:@"NSApplicationProcessIdentifier"] unsignedLongValue];
-
- // PID
- length += sizeof(pid);
-
- header.checksum = RandomChecksum();
- header.function = 22;
- header.size = length;
-
- length += sizeof(header);
- // HEADER
-
- if ( (buffer = (char *)malloc( length ))==NULL )
- {
- NSLog( @"sendAppQuit: failed" );
-
- return;
- }
-
- ptr = buffer;
-
- COPY_TO_BUFFER( ptr, &header, sizeof(header) );
- COPY_TO_BUFFER( ptr, &pid, sizeof(pid) );
-
- lengthAfter = length;
-
- if ( SendBuffer( sockfd, buffer, &lengthAfter ) == -1 || lengthAfter != length )
- {
- NSLog( @"sendAppQuit: failed" );
- }
-
- free( buffer );