/*! * \brief Get all contacts from the usrloc, in partitions if wanted * * Return list of all contacts for all currently registered * users in all domains. The caller must provide buffer of * sufficient length for fitting all those contacts. In the * case when buffer was exhausted, the function returns * estimated amount of additional space needed, in this * case the caller is expected to repeat the call using * this value as the hint. * * Information is packed into the buffer as follows: * * +------------+----------+-----+------+-----+ * |contact1.len|contact1.s|sock1|flags1|path1| * +------------+----------+-----+------+-----+ * |contact2.len|contact2.s|sock2|flags2|path1| * +------------+----------+-----+------+-----+ * |..........................................| * +------------+----------+-----+------+-----+ * |contactN.len|contactN.s|sockN|flagsN|pathN| * +------------+----------+-----+------+-----+ * |000000000000| * +------------+ * * \param buf target buffer * \param len length of buffer * \param flags contact flags * \param part_idx part index * \param part_max maximal part * \return 0 on success, positive if buffer size was not sufficient, negative on failure */ int get_all_ucontacts(void *buf, int len, unsigned int flags, unsigned int part_idx, unsigned int part_max) { if (db_mode==DB_ONLY) return get_all_db_ucontacts( buf, len, flags, part_idx, part_max); else return get_all_mem_ucontacts( buf, len, flags, part_idx, part_max); }
/*! * \brief Get all contacts from the usrloc, in partitions if wanted * * Return list of all contacts for all currently registered * users in all domains. The caller must provide buffer of * sufficient length for fitting all those contacts. In the * case when buffer was exhausted, the function returns * estimated amount of additional space needed, in this * case the caller is expected to repeat the call using * this value as the hint. * * Information is packed into the buffer as follows: * * +------------+----------+-----+------+-----+ * |contact1.len|contact1.s|sock1|flags1|path1| * +------------+----------+-----+------+-----+ * |contact2.len|contact2.s|sock2|flags2|path1| * +------------+----------+-----+------+-----+ * |..........................................| * +------------+----------+-----+------+-----+ * |contactN.len|contactN.s|sockN|flagsN|pathN| * +------------+----------+-----+------+-----+ * |000000000000| * +------------+ * * \param buf target buffer * \param len length of buffer * \param flags contact flags * \param part_idx part index * \param part_max maximal part * \return 0 on success, positive if buffer size was not sufficient, negative on failure */ int get_all_ucontacts(void *buf, int len, unsigned int flags, unsigned int part_idx, unsigned int part_max) { return get_all_mem_ucontacts( buf, len, flags, part_idx, part_max); }