Index: include/sdp_lib.h =================================================================== RCS file: /cvsroot/bluez/libs/include/sdp_lib.h,v retrieving revision 1.12 diff -u -r1.12 sdp_lib.h --- include/sdp_lib.h 9 Dec 2005 09:12:44 -0000 1.12 +++ include/sdp_lib.h 14 Dec 2005 09:27:40 -0000 @@ -176,6 +176,11 @@ int sdp_set_access_protos(sdp_record_t *rec, const sdp_list_t *proto); /* + * Set the additional access protocols of the record to those specified in proto + */ +int sdp_set_add_access_protos(sdp_record_t *rec, const sdp_list_t *proto); + +/* * Get protocol port (i.e. PSM for L2CAP, Channel for RFCOMM) */ int sdp_get_proto_port(const sdp_list_t *list, int proto); @@ -457,7 +462,7 @@ /* * Get the additional access protocols from the service record */ -int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **pap); +int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **protos); /* * Extract the list of browse groups to which the service belongs. Index: src/sdp.c =================================================================== RCS file: /cvsroot/bluez/libs/src/sdp.c,v retrieving revision 1.33 diff -u -r1.33 sdp.c --- src/sdp.c 9 Dec 2005 09:39:16 -0000 1.33 +++ src/sdp.c 14 Dec 2005 09:27:41 -0000 @@ -1812,13 +1812,31 @@ int sdp_set_access_protos(sdp_record_t *rec, const sdp_list_t *ap) { const sdp_list_t *p; - sdp_data_t *protos = 0; + sdp_data_t *protos = NULL; for (p = ap; p; p = p->next) { - sdp_data_t *seq = access_proto_to_dataseq(rec, (sdp_list_t *)p->data); + sdp_data_t *seq = access_proto_to_dataseq(rec, (sdp_list_t *) p->data); protos = sdp_seq_append(protos, seq); } + sdp_attr_add(rec, SDP_ATTR_PROTO_DESC_LIST, protos); + + return 0; +} + +int sdp_set_add_access_protos(sdp_record_t *rec, const sdp_list_t *ap) +{ + const sdp_list_t *p; + sdp_data_t *protos = NULL; + + for (p = ap; p; p = p->next) { + sdp_data_t *seq = access_proto_to_dataseq(rec, (sdp_list_t *) p->data); + protos = sdp_seq_append(protos, seq); + } + + sdp_attr_add(rec, SDP_ATTR_ADD_PROTO_DESC_LIST, + sdp_data_alloc(SDP_SEQ8, protos)); + return 0; }