summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2004-12-07 11:29:58 +0000
committerMarcel Holtmann <marcel@holtmann.org>2004-12-07 11:29:58 +0000
commit6864c723272d4790a2fec4a1c23fa5e46ac15e5f (patch)
treee480455dc8cbbf6d38767a9bb6047211558a0d78
parent027ee4fcad36b7f6926fecef47a449038eefdbc5 (diff)
Update the UUID constants and its translations
-rw-r--r--include/sdp.h126
-rw-r--r--src/sdp.c160
2 files changed, 179 insertions, 107 deletions
diff --git a/include/sdp.h b/include/sdp.h
index 712e42e7..8f832ea6 100644
--- a/include/sdp.h
+++ b/include/sdp.h
@@ -54,26 +54,27 @@ extern "C" {
* Protocol UUIDs
*/
#define SDP_UUID 0x0001
-#define RFCOMM_UUID 0x0003
-#define TCS_BIN_UUID 0x0005
-#define L2CAP_UUID 0x0100
-#define IP_UUID 0x0009
#define UDP_UUID 0x0002
+#define RFCOMM_UUID 0x0003
#define TCP_UUID 0x0004
#define TCS_BIN_UUID 0x0005
#define TCS_AT_UUID 0x0006
#define OBEX_UUID 0x0008
-#define FTP_UUID 0x000A
-#define HTTP_UUID 0x000C
-#define WSP_UUID 0x000E
-#define BNEP_UUID 0x000F
+#define IP_UUID 0x0009
+#define FTP_UUID 0x000a
+#define HTTP_UUID 0x000c
+#define WSP_UUID 0x000e
+#define BNEP_UUID 0x000f
+#define UPNP_UUID 0x0010
#define HIDP_UUID 0x0011
#define HCRP_CTRL_UUID 0x0012
#define HCRP_DATA_UUID 0x0014
#define HCRP_NOTE_UUID 0x0016
#define AVCTP_UUID 0x0017
#define AVDTP_UUID 0x0019
-#define CMTP_UUID 0x001B
+#define CMTP_UUID 0x001b
+#define UDI_UUID 0x001d
+#define L2CAP_UUID 0x0100
/*
* Service class identifiers of standard services and service groups
@@ -92,6 +93,10 @@ extern "C" {
#define CORDLESS_TELEPHONY_SVCLASS_ID 0x1109
#define AUDIO_SOURCE_SVCLASS_ID 0x110a
#define AUDIO_SINK_SVCLASS_ID 0x110b
+#define AV_REMOTE_TARGET_SVCLASS_ID 0x110c
+#define ADVANCED_AUDIO_SVCLASS_ID 0x110d
+#define AV_REMOTE_SVCLASS_ID 0x110e
+#define VIDEO_CONF_SVCLASS_ID 0x110f
#define INTERCOM_SVCLASS_ID 0x1110
#define FAX_SVCLASS_ID 0x1111
#define HEADSET_AGW_SVCLASS_ID 0x1112
@@ -100,21 +105,38 @@ extern "C" {
#define PANU_SVCLASS_ID 0x1115
#define NAP_SVCLASS_ID 0x1116
#define GN_SVCLASS_ID 0x1117
+#define DIRECT_PRINTING_SVCLASS_ID 0x1118
+#define REFERENCE_PRINTING_SVCLASS_ID 0x1119
#define IMAGING_SVCLASS_ID 0x111a
#define IMAGING_RESPONDER_SVCLASS_ID 0x111b
+#define IMAGING_ARCHIVE_SVCLASS_ID 0x111c
+#define IMAGING_REFOBJS_SVCLASS_ID 0x111d
#define HANDSFREE_SVCLASS_ID 0x111e
-#define HANDSFREE_AUDIO_GW_SVCLASS_ID 0x111f
+#define HANDSFREE_AGW_SVCLASS_ID 0x111f
+#define DIRECT_PRT_REFOBJS_SVCLASS_ID 0x1120
+#define REFLECTED_UI_SVCLASS_ID 0x1121
+#define BASIC_PRINTING_SVCLASS_ID 0x1122
+#define PRINTING_STATUS_SVCLASS_ID 0x1123
#define HID_SVCLASS_ID 0x1124
#define HCR_SVCLASS_ID 0x1125
#define HCR_PRINT_SVCLASS_ID 0x1126
#define HCR_SCAN_SVCLASS_ID 0x1127
#define CIP_SVCLASS_ID 0x1128
+#define VIDEO_CONF_GW_SVCLASS_ID 0x1129
+#define UDI_MT_SVCLASS_ID 0x112a
+#define UDI_TA_SVCLASS_ID 0x112b
+#define AV_SVCLASS_ID 0x112c
#define SAP_SVCLASS_ID 0x112d
#define PNP_INFO_SVCLASS_ID 0x1200
#define GENERIC_NETWORKING_SVCLASS_ID 0x1201
#define GENERIC_FILETRANS_SVCLASS_ID 0x1202
#define GENERIC_AUDIO_SVCLASS_ID 0x1203
#define GENERIC_TELEPHONY_SVCLASS_ID 0x1204
+#define UPNP_SVCLASS_ID 0x1205
+#define UPNP_IP_SVCLASS_ID 0x1206
+#define UPNP_PAN_SVCLASS_ID 0x1300
+#define UPNP_LAP_SVCLASS_ID 0x1301
+#define UPNP_L2CAP_SVCLASS_ID 0x1302
#define VIDEO_SOURCE_SVCLASS_ID 0x1303
#define VIDEO_SINK_SVCLASS_ID 0x1304
@@ -122,31 +144,65 @@ extern "C" {
* Standard profile descriptor identifiers; note these
* may be identical to some of the service classes defined above
*/
-#define SERIAL_PORT_PROFILE_ID 0x1101
-#define LAN_ACCESS_PROFILE_ID 0x1102
-#define DIALUP_NET_PROFILE_ID 0x1103
-#define IRMC_SYNC_PROFILE_ID 0x1104
-#define OBEX_OBJPUSH_PROFILE_ID 0x1105
-#define OBEX_FILETRANS_PROFILE_ID 0x1106
-#define IRMC_SYNC_CMD_PROFILE_ID 0x1107
-#define HEADSET_PROFILE_ID 0x1108
-#define CORDLESS_TELEPHONY_PROFILE_ID 0x1109
-#define ADVANCED_AUDIO_PROFILE_ID 0x110d
-#define INTERCOM_PROFILE_ID 0x1110
-#define FAX_PROFILE_ID 0x1111
-#define HEADSET_AGW_PROFILE_ID 0x1112
-#define WAP_PROFILE_ID 0x1113
-#define WAP_CLIENT_PROFILE_ID 0x1114
-#define PANU_PROFILE_ID 0x1115
-#define NAP_PROFILE_ID 0x1116
-#define GN_PROFILE_ID 0x1117
-#define IMAGING_PROFILE_ID 0x111a
-#define IMAGING_RESPONDER_PROFILE_ID 0x111b
-#define HANDSFREE_PROFILE_ID 0x111e
-#define HID_PROFILE_ID 0x1124
-#define HCR_PROFILE_ID 0x1125
-#define CIP_PROFILE_ID 0x1128
-#define SAP_PROFILE_ID 0x112d
+#define SDP_SERVER_PROFILE_ID SDP_SERVER_SVCLASS_ID
+#define BROWSE_GRP_DESC_PROFILE_ID BROWSE_GRP_DESC_SVCLASS_ID
+#define SERIAL_PORT_PROFILE_ID SERIAL_PORT_SVCLASS_ID
+#define LAN_ACCESS_PROFILE_ID LAN_ACCESS_SVCLASS_ID
+#define DIALUP_NET_PROFILE_ID DIALUP_NET_SVCLASS_ID
+#define IRMC_SYNC_PROFILE_ID IRMC_SYNC_SVCLASS_ID
+#define OBEX_OBJPUSH_PROFILE_ID OBEX_OBJPUSH_SVCLASS_ID
+#define OBEX_FILETRANS_PROFILE_ID OBEX_FILETRANS_SVCLASS_ID
+#define IRMC_SYNC_CMD_PROFILE_ID IRMC_SYNC_CMD_SVCLASS_ID
+#define HEADSET_PROFILE_ID HEADSET_SVCLASS_ID
+#define CORDLESS_TELEPHONY_PROFILE_ID CORDLESS_TELEPHONY_SVCLASS_ID
+#define AUDIO_SOURCE_PROFILE_ID AUDIO_SOURCE_SVCLASS_ID
+#define AUDIO_SINK_PROFILE_ID AUDIO_SINK_SVCLASS_ID
+#define AV_REMOTE_TARGET_PROFILE_ID AV_REMOTE_TARGET_SVCLASS_ID
+#define ADVANCED_AUDIO_PROFILE_ID ADVANCED_AUDIO_SVCLASS_ID
+#define AV_REMOTE_PROFILE_ID AV_REMOTE_SVCLASS_ID
+#define VIDEO_CONF_PROFILE_ID VIDEO_CONF_SVCLASS_ID
+#define INTERCOM_PROFILE_ID INTERCOM_SVCLASS_ID
+#define FAX_PROFILE_ID FAX_SVCLASS_ID
+#define HEADSET_AGW_PROFILE_ID HEADSET_AGW_SVCLASS_ID
+#define WAP_PROFILE_ID WAP_SVCLASS_ID
+#define WAP_CLIENT_PROFILE_ID WAP_CLIENT_SVCLASS_ID
+#define PANU_PROFILE_ID PANU_SVCLASS_ID
+#define NAP_PROFILE_ID NAP_SVCLASS_ID
+#define GN_PROFILE_ID GN_SVCLASS_ID
+#define DIRECT_PRINTING_PROFILE_ID DIRECT_PRINTING_SVCLASS_ID
+#define REFERENCE_PRINTING_PROFILE_ID REFERENCE_PRINTING_SVCLASS_ID
+#define IMAGING_PROFILE_ID IMAGING_SVCLASS_ID
+#define IMAGING_RESPONDER_PROFILE_ID IMAGING_RESPONDER_SVCLASS_ID
+#define IMAGING_ARCHIVE_PROFILE_ID IMAGING_ARCHIVE_SVCLASS_ID
+#define IMAGING_REFOBJS_PROFILE_ID IMAGING_REFOBJS_SVCLASS_ID
+#define HANDSFREE_PROFILE_ID HANDSFREE_SVCLASS_ID
+#define HANDSFREE_AGW_PROFILE_ID HANDSFREE_AGW_SVCLASS_ID
+#define DIRECT_PRT_REFOBJS_PROFILE_ID DIRECT_PRT_REFOBJS_SVCLASS_ID
+#define REFLECTED_UI_PROFILE_ID REFLECTED_UI_SVCLASS_ID
+#define BASIC_PRINTING_PROFILE_ID BASIC_PRINTING_SVCLASS_ID
+#define PRINTING_STATUS_PROFILE_ID PRINTING_STATUS_SVCLASS_ID
+#define HID_PROFILE_ID HID_SVCLASS_ID
+#define HCR_PROFILE_ID HCR_SCAN_SVCLASS_ID
+#define HCR_PRINT_PROFILE_ID HCR_PRINT_SVCLASS_ID
+#define HCR_SCAN_PROFILE_ID HCR_SCAN_SVCLASS_ID
+#define CIP_PROFILE_ID CIP_SVCLASS_ID
+#define VIDEO_CONF_GW_PROFILE_ID VIDEO_CONF_GW_SVCLASS_ID
+#define UDI_MT_PROFILE_ID UDI_MT_SVCLASS_ID
+#define UDI_TA_PROFILE_ID UDI_TA_SVCLASS_ID
+#define AV_PROFILE_ID AV_SVCLASS_ID
+#define SAP_PROFILE_ID SAP_SVCLASS_ID
+#define PNP_INFO_PROFILE_ID PNP_INFO_SVCLASS_ID
+#define GENERIC_NETWORKING_PROFILE_ID GENERIC_NETWORKING_SVCLASS_ID
+#define GENERIC_FILETRANS_PROFILE_ID GENERIC_FILETRANS_SVCLASS_ID
+#define GENERIC_AUDIO_PROFILE_ID GENERIC_AUDIO_SVCLASS_ID
+#define GENERIC_TELEPHONY_PROFILE_ID GENERIC_TELEPHONY_SVCLASS_ID
+#define UPNP_PROFILE_ID UPNP_SVCLASS_ID
+#define UPNP_IP_PROFILE_ID UPNP_IP_SVCLASS_ID
+#define UPNP_PAN_PROFILE_ID UPNP_PAN_SVCLASS_ID
+#define UPNP_LAP_PROFILE_ID UPNP_LAP_SVCLASS_ID
+#define UPNP_L2CAP_PROFILE_ID UPNP_L2CAP_SVCLASS_ID
+#define VIDEO_SOURCE_PROFILE_ID VIDEO_SOURCE_SVCLASS_ID
+#define VIDEO_SINK_PROFILE_ID VIDEO_SINK_SVCLASS_ID
/*
* Attribute identifier codes
diff --git a/src/sdp.c b/src/sdp.c
index a830cf8b..7c3bd7d7 100644
--- a/src/sdp.c
+++ b/src/sdp.c
@@ -60,91 +60,105 @@ struct tupla {
};
static struct tupla Protocol[] = {
- { SDP_UUID, "SDP" },
- { RFCOMM_UUID, "RFCOMM" },
- { TCS_BIN_UUID, "TCS-BIN" },
- { L2CAP_UUID, "L2CAP" },
- { IP_UUID, "IP" },
- { UDP_UUID, "UDP" },
- { TCP_UUID, "TCP" },
- { TCS_AT_UUID, "TCS-AT" },
- { OBEX_UUID, "OBEX" },
- { FTP_UUID, "FTP" },
- { HTTP_UUID, "HTTP" },
- { WSP_UUID, "WSP" },
- { BNEP_UUID, "BNEP" },
- { HIDP_UUID, "HIDP" },
- { AVCTP_UUID, "AVCTP" },
- { AVDTP_UUID, "AVDTP" },
- { CMTP_UUID, "CMTP" },
+ { SDP_UUID, "SDP" },
+ { UDP_UUID, "UDP" },
+ { RFCOMM_UUID, "RFCOMM" },
+ { TCP_UUID, "TCP" },
+ { TCS_BIN_UUID, "TCS-BIN" },
+ { TCS_AT_UUID, "TCS-AT" },
+ { OBEX_UUID, "OBEX" },
+ { IP_UUID, "IP" },
+ { FTP_UUID, "FTP" },
+ { HTTP_UUID, "HTTP" },
+ { WSP_UUID, "WSP" },
+ { BNEP_UUID, "BNEP" },
+ { UPNP_UUID, "UPNP" },
+ { HIDP_UUID, "HIDP" },
+ { HCRP_CTRL_UUID, "HCRP-Ctrl" },
+ { HCRP_DATA_UUID, "HCRP-Data" },
+ { HCRP_NOTE_UUID, "HCRP-Notify" },
+ { AVCTP_UUID, "AVCTP" },
+ { AVDTP_UUID, "AVDTP" },
+ { CMTP_UUID, "CMTP" },
+ { UDI_UUID, "UDI" },
+ { L2CAP_UUID, "L2CAP" },
{ 0 }
};
static struct tupla ServiceClass[] = {
- { SDP_SERVER_SVCLASS_ID, "SDP Server" },
- { BROWSE_GRP_DESC_SVCLASS_ID, "Browse Group Descriptor" },
- { PUBLIC_BROWSE_GROUP, "Public Browse Group" },
- { SERIAL_PORT_SVCLASS_ID, "Serial Port" },
- { LAN_ACCESS_SVCLASS_ID, "LAN Access Using PPP" },
- { DIALUP_NET_SVCLASS_ID, "Dialup Networking" },
- { IRMC_SYNC_SVCLASS_ID, "IrMCSync" },
- { OBEX_OBJPUSH_SVCLASS_ID, "OBEX Object Push" },
- { OBEX_FILETRANS_SVCLASS_ID, "OBEX File Transfer" },
- { IRMC_SYNC_CMD_SVCLASS_ID, "IrMCSync Command" },
- { HEADSET_SVCLASS_ID, "Headset" },
- { CORDLESS_TELEPHONY_SVCLASS_ID,"Cordless Telephony" },
- { AUDIO_SOURCE_SVCLASS_ID, "Audio Source" },
- { AUDIO_SINK_SVCLASS_ID, "Audio Sink" },
- { INTERCOM_SVCLASS_ID, "Intercom" },
- { FAX_SVCLASS_ID, "Fax" },
- { HEADSET_AGW_SVCLASS_ID, "Headset Audio Gateway" },
- { WAP_SVCLASS_ID, "WAP" },
- { WAP_CLIENT_SVCLASS_ID, "WAP Client" },
- { PNP_INFO_SVCLASS_ID, "PnP Information" },
- { GENERIC_NETWORKING_SVCLASS_ID,"Generic Networking" },
- { GENERIC_FILETRANS_SVCLASS_ID, "Generic File Transfer" },
- { GENERIC_AUDIO_SVCLASS_ID, "Generic Audio" },
- { GENERIC_TELEPHONY_SVCLASS_ID, "Generic Telephony" },
- { PANU_SVCLASS_ID, "PAN user" },
- { NAP_SVCLASS_ID, "Network access point" },
- { GN_SVCLASS_ID, "PAN group network" },
- { HID_SVCLASS_ID, "Human Interface Device" },
- { CIP_SVCLASS_ID, "Common ISDN Access" },
- { SAP_SVCLASS_ID, "SIM Access" },
+ { SDP_SERVER_SVCLASS_ID, "SDP Server" },
+ { BROWSE_GRP_DESC_SVCLASS_ID, "Browse Group Descriptor" },
+ { PUBLIC_BROWSE_GROUP, "Public Browse Group" },
+ { SERIAL_PORT_SVCLASS_ID, "Serial Port" },
+ { LAN_ACCESS_SVCLASS_ID, "LAN Access Using PPP" },
+ { DIALUP_NET_SVCLASS_ID, "Dialup Networking" },
+ { IRMC_SYNC_SVCLASS_ID, "IrMC Sync" },
+ { OBEX_OBJPUSH_SVCLASS_ID, "OBEX Object Push" },
+ { OBEX_FILETRANS_SVCLASS_ID, "OBEX File Transfer" },
+ { IRMC_SYNC_CMD_SVCLASS_ID, "IrMC Sync Command" },
+ { HEADSET_SVCLASS_ID, "Headset" },
+ { CORDLESS_TELEPHONY_SVCLASS_ID, "Cordless Telephony" },
+ { AUDIO_SOURCE_SVCLASS_ID, "Audio Source" },
+ { AUDIO_SINK_SVCLASS_ID, "Audio Sink" },
+ { AV_REMOTE_TARGET_SVCLASS_ID, "AV Remote Target" },
+ { ADVANCED_AUDIO_SVCLASS_ID, "Advanced Audio" },
+ { AV_REMOTE_SVCLASS_ID, "AV Remote" },
+ { VIDEO_CONF_SVCLASS_ID, "Video Conferencing" },
+ { INTERCOM_SVCLASS_ID, "Intercom" },
+ { FAX_SVCLASS_ID, "Fax" },
+ { HEADSET_AGW_SVCLASS_ID, "Headset Audio Gateway" },
+ { WAP_SVCLASS_ID, "WAP" },
+ { WAP_CLIENT_SVCLASS_ID, "WAP Client" },
+ { PANU_SVCLASS_ID, "PAN User" },
+ { NAP_SVCLASS_ID, "Network Access Point" },
+ { GN_SVCLASS_ID, "PAN Group Network" },
+ { DIRECT_PRINTING_SVCLASS_ID, "Direct Printing" },
+ { REFERENCE_PRINTING_SVCLASS_ID, "Reference Printing" },
+ { IMAGING_SVCLASS_ID, "Imaging" },
+ { IMAGING_RESPONDER_SVCLASS_ID, "Imaging Responder" },
+ { IMAGING_ARCHIVE_SVCLASS_ID, "Imaging Automatic Archive" },
+ { IMAGING_REFOBJS_SVCLASS_ID, "Imaging Referenced Objects" },
+ { HANDSFREE_SVCLASS_ID, "Handsfree" },
+ { HANDSFREE_AGW_SVCLASS_ID, "Handfree Audio Gateway" },
+ { DIRECT_PRT_REFOBJS_SVCLASS_ID, "Direct Printing Ref. Objects" },
+ { REFLECTED_UI_SVCLASS_ID, "Reflected UI" },
+ { BASIC_PRINTING_SVCLASS_ID, "Basic Printing" },
+ { PRINTING_STATUS_SVCLASS_ID, "Printing Status" },
+ { HID_SVCLASS_ID, "Human Interface Device" },
+ { HCR_SVCLASS_ID, "Hardcopy Cable Replacement" },
+ { HCR_PRINT_SVCLASS_ID, "HCR Print" },
+ { HCR_SCAN_SVCLASS_ID, "HCR Scan" },
+ { CIP_SVCLASS_ID, "Common ISDN Access" },
+ { VIDEO_CONF_GW_SVCLASS_ID, "Video Conferencing Gateway" },
+ { UDI_MT_SVCLASS_ID, "UDI MT" },
+ { UDI_TA_SVCLASS_ID, "UDI TA" },
+ { AV_SVCLASS_ID, "Audio/Video" },
+ { SAP_SVCLASS_ID, "SIM Access" },
+ { PNP_INFO_SVCLASS_ID, "PnP Information" },
+ { GENERIC_NETWORKING_SVCLASS_ID, "Generic Networking" },
+ { GENERIC_FILETRANS_SVCLASS_ID, "Generic File Transfer" },
+ { GENERIC_AUDIO_SVCLASS_ID, "Generic Audio" },
+ { GENERIC_TELEPHONY_SVCLASS_ID, "Generic Telephony" },
+ { UPNP_SVCLASS_ID, "UPnP" },
+ { UPNP_IP_SVCLASS_ID, "UPnP IP" },
+ { UPNP_PAN_SVCLASS_ID, "UPnP PAN" },
+ { UPNP_LAP_SVCLASS_ID, "UPnP LAP" },
+ { UPNP_L2CAP_SVCLASS_ID, "UPnP L2CAP" },
+ { VIDEO_SOURCE_SVCLASS_ID, "Video Source" },
+ { VIDEO_SINK_SVCLASS_ID, "Video Sink" },
{ 0 }
};
-static struct tupla Profile[] = {
- { SERIAL_PORT_PROFILE_ID, "Serial Port" },
- { LAN_ACCESS_PROFILE_ID, "LAN Access Using PPP" },
- { DIALUP_NET_PROFILE_ID, "Dialup Networking" },
- { IRMC_SYNC_PROFILE_ID, "IrMCSync" },
- { OBEX_OBJPUSH_PROFILE_ID, "OBEX Object Push" },
- { OBEX_FILETRANS_PROFILE_ID, "OBEX File Transfer" },
- { IRMC_SYNC_CMD_PROFILE_ID, "IrMCSync Command" },
- { HEADSET_PROFILE_ID, "Headset" },
- { CORDLESS_TELEPHONY_PROFILE_ID, "Cordless Telephony" },
- { ADVANCED_AUDIO_PROFILE_ID, "Advanced Audio" },
- { INTERCOM_PROFILE_ID, "Intercom" },
- { FAX_PROFILE_ID, "Fax" },
- { HEADSET_AGW_PROFILE_ID, "Headset Audio Gateway" },
- { WAP_PROFILE_ID, "WAP" },
- { WAP_CLIENT_PROFILE_ID, "WAP Client" },
- { PANU_PROFILE_ID, "PAN user" },
- { NAP_PROFILE_ID, "PAN access point" },
- { GN_PROFILE_ID, "PAN group network" },
- { HID_PROFILE_ID, "Human Interface Device" },
- { CIP_PROFILE_ID, "Common ISDN Access" },
- { SAP_PROFILE_ID, "SIM Access" },
- { 0 }
-};
+#define Profile ServiceClass
static char *string_lookup(struct tupla *pt0, int index)
{
struct tupla *pt;
+
for (pt = pt0; pt->index; pt++)
- if (pt->index == index)
+ if (pt->index == index)
return pt->str;
+
return "";
}
@@ -160,6 +174,7 @@ static int uuid2str(struct tupla *message, const uuid_t *uuid, char *str, size_t
snprintf(str, n, "NULL");
return -2;
}
+
switch (uuid->type) {
case SDP_UUID16:
str2 = string_lookup(message, uuid->value.uuid16);
@@ -175,6 +190,7 @@ static int uuid2str(struct tupla *message, const uuid_t *uuid, char *str, size_t
snprintf(str, n, "Type of UUID (%x) unknown.", uuid->type);
return -1;
}
+
return 0;
}