Changeset 1139

Show
Ignore:
Timestamp:
08/02/06 06:27:37 (2 years ago)
Author:
ehabkost
Message:

Send objtype_enabled information to plugin process

The objtype_enabled information needs to be sent to the plugin process,
also. Otherwise osync_member_objtype_enabled() won't work properly.

This fix the msynctool --filter-objtype option, that was broken by the
IPC code.

Location:
trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/opensync/opensync_member.c

    r1099 r1139  
    15061506 
    15071507/** Write the list of objtypes that had slow-sync set to a message */ 
    1508 void osync_member_write_slow_sync_list(OSyncMember *member, OSyncMessage *message) 
     1508void osync_member_write_sink_info(OSyncMember *member, OSyncMessage *message) 
    15091509{ 
    15101510        GList *obj = NULL; 
    15111511        for (osync_member_get_objtype_sinks(member, &obj, NULL); obj; obj = obj->next) { 
    15121512                OSyncObjTypeSink *sink = obj->data; 
    1513                 if (osync_member_get_slow_sync(member, sink->objtype->name) == TRUE)  
    1514                         osync_message_write_string(message, sink->objtype->name); 
     1513                int slow; 
     1514                slow = osync_member_get_slow_sync(member, sink->objtype->name); 
     1515                osync_message_write_string(message, sink->objtype->name); 
     1516                osync_message_write_int(message, sink->read); 
     1517                osync_message_write_int(message, sink->write); 
     1518                osync_message_write_int(message, sink->enabled); 
     1519                osync_message_write_int(message, slow); 
    15151520        } 
    15161521        osync_message_write_string(message, NULL); 
    15171522} 
     1523 
     1524/** Read sink info for member 
     1525 * 
     1526 * @see osync_member_read_sink_info_full(), osync_member_read_sink_info() 
     1527 */ 
     1528int __sync_member_read_sink_info(OSyncMember *member, OSyncMessage *message) 
     1529{ 
     1530        char *objtypestr; 
     1531        int r = 0; 
     1532        for (;;) { 
     1533                int read, write, enabled, slow; 
     1534                osync_message_read_string(message, &objtypestr); 
     1535                if (!objtypestr) 
     1536                        break; 
     1537 
     1538                osync_message_read_int(message, &read); 
     1539                osync_message_read_int(message, &write); 
     1540                osync_message_read_int(message, &enabled); 
     1541                osync_message_read_int(message, &slow); 
     1542 
     1543                OSyncObjTypeSink *sink = osync_member_find_objtype_sink(member, objtypestr); 
     1544                if (!sink) 
     1545                        continue; 
     1546 
     1547                sink->read = read; 
     1548                sink->write = write; 
     1549                sink->enabled = enabled; 
     1550 
     1551                if (slow) { 
     1552                        osync_member_set_slow_sync(member, objtypestr, TRUE); 
     1553                        r++; 
     1554                } 
     1555 
     1556                free(objtypestr); 
     1557        } 
     1558        return r; 
     1559} 
     1560 
    15181561 
    15191562/** Read a list of objtypes that had slow-sync set, replacing old settings 
     
    15301573 * group. 
    15311574 */ 
    1532 void osync_member_read_slow_sync_full_list(OSyncMember *member, OSyncMessage *message) 
    1533 { 
    1534         char *objtypestr; 
     1575void osync_member_read_sink_info_full(OSyncMember *member, OSyncMessage *message) 
     1576{ 
    15351577        osync_group_reset_slow_sync(member->group, "data"); 
    1536         for (;;) { 
    1537                 osync_message_read_string(message, &objtypestr); 
    1538                 if (!objtypestr) 
    1539                         break; 
    1540  
    1541                 osync_member_set_slow_sync(member, objtypestr, TRUE); 
    1542                 free(objtypestr); 
    1543         } 
     1578        __sync_member_read_sink_info(member, message); 
    15441579} 
    15451580 
     
    15561591 * to osplugin. 
    15571592 */ 
    1558 void osync_member_read_slow_sync_list(OSyncMember *member, OSyncMessage *message) 
    1559 { 
    1560         char *objtypestr; 
    1561         osync_bool set_for_any = FALSE; 
    1562  
    1563         for (;;) { 
    1564                 osync_message_read_string(message, &objtypestr); 
    1565                 if (!objtypestr) 
    1566                         break; 
    1567  
    1568                 set_for_any = TRUE; 
    1569                 osync_member_set_slow_sync(member, objtypestr, TRUE); 
    1570                 free(objtypestr); 
    1571  
    1572         } 
     1593void osync_member_read_sink_info(OSyncMember *member, OSyncMessage *message) 
     1594{ 
     1595        int set_for_any; 
     1596 
     1597        set_for_any = __sync_member_read_sink_info(member, message); 
    15731598 
    15741599        if (set_for_any) { 
  • trunk/opensync/opensync_member_internals.h

    r1099 r1139  
    5252osync_bool osync_member_require_sink_info(OSyncMember *member, OSyncError **error); 
    5353 
    54 void osync_member_write_slow_sync_list(OSyncMember *member, OSyncMessage *message); 
    55 void osync_member_read_slow_sync_list(OSyncMember *member, OSyncMessage *message); 
    56 void osync_member_read_slow_sync_full_list(OSyncMember *member, OSyncMessage *message); 
     54void osync_member_write_sink_info(OSyncMember *member, OSyncMessage *message); 
     55void osync_member_read_sink_info(OSyncMember *member, OSyncMessage *message); 
     56void osync_member_read_sink_info_full(OSyncMember *member, OSyncMessage *message); 
    5757 
  • trunk/osengine/osengine_client.c

    r1125 r1139  
    103103                 
    104104        } else { 
    105                 osync_member_read_slow_sync_list(sender->member, message); 
     105                osync_member_read_sink_info(sender->member, message); 
    106106 
    107107                osync_status_update_member(engine, sender, MEMBER_CONNECTED, NULL); 
     
    396396        osync_message_set_handler(message, (OSyncMessageHandler)_get_changes_reply_receiver, target); 
    397397 
    398         osync_member_write_slow_sync_list(target->member, message); 
     398        osync_member_write_sink_info(target->member, message); 
    399399         
    400400        OSyncPluginTimeouts timeouts = osync_client_get_timeouts(target); 
     
    467467                goto error; 
    468468                 
    469         osync_member_write_slow_sync_list(target->member, message); 
     469        osync_member_write_sink_info(target->member, message); 
    470470 
    471471        osync_message_set_handler(message, (OSyncMessageHandler)_connect_reply_receiver, target); 
  • trunk/osplugin/osplugin.c

    r1111 r1139  
    334334 
    335335        case OSYNC_MESSAGE_CONNECT: 
    336                 osync_member_read_slow_sync_full_list(member, message); 
     336                osync_member_read_sink_info_full(member, message); 
    337337 
    338338                ctx = g_malloc0(sizeof(context)); 
     
    350350 
    351351        case OSYNC_MESSAGE_GET_CHANGES: 
    352                 osync_member_read_slow_sync_full_list(member, message); 
     352                osync_member_read_sink_info_full(member, message); 
    353353 
    354354                ctx = g_malloc0(sizeof(context)); 
     
    523523        assert(member); 
    524524 
    525         osync_member_write_slow_sync_list(member, reply); 
     525        osync_member_write_sink_info(member, reply); 
    526526         
    527527        return TRUE;