From 6864c723272d4790a2fec4a1c23fa5e46ac15e5f Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Tue, 7 Dec 2004 11:29:58 +0000 Subject: Update the UUID constants and its translations --- include/sdp.h | 126 ++++++++++++++++++++++++++++++++------------- src/sdp.c | 160 ++++++++++++++++++++++++++++++++-------------------------- 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; } -- cgit