NSD: Allow application to add TXT Records at the time of registering service 35/113435/1 accepted/tizen/common/20170210.170527 accepted/tizen/ivi/20170214.011046 accepted/tizen/mobile/20170214.010842 accepted/tizen/tv/20170214.010929 accepted/tizen/unified/20170309.032141 accepted/tizen/wearable/20170214.011014 submit/tizen/20170210.072732 submit/tizen/20170210.083740 submit/tizen_unified/20170308.100405
authorSaurav Babu <saurav.babu@samsung.com>
Tue, 7 Feb 2017 12:07:31 +0000 (17:37 +0530)
committerSaurav Babu <saurav.babu@samsung.com>
Tue, 7 Feb 2017 12:11:06 +0000 (17:41 +0530)
Change-Id: I0713d24409a805b88e612a5d5813be27d0e4ae9b
Signed-off-by: Saurav Babu <saurav.babu@samsung.com>
src/dns-sd/dns-sd.c
test/dns-sd-test.c

index f35ee0e..0b3f12c 100644 (file)
@@ -776,6 +776,8 @@ int dnssd_register_local_service(dnssd_service_h local_service,
        dnssd_handle_s *local_handle = NULL;
        dnssd_register_data_s *reg = NULL;
        DNSServiceRef *sd_ref;
+       void *data;
+       unsigned short length;
 
        CHECK_FEATURE_SUPPORTED(NETWORK_SERVICE_DISCOVERY_FEATURE);
 
@@ -816,11 +818,13 @@ int dnssd_register_local_service(dnssd_service_h local_service,
        DNSSD_LOGD("Domain/Interface/Flags : %s/%d/0x%x", local_handle->domain,
                        reg->if_index, local_handle->flags);
 
+       dnssd_service_get_all_txt_record(local_service, &length, &data);
+
        ret = DNSServiceRegister(sd_ref, local_handle->flags,
                        reg->if_index, reg->service_name,
                        local_handle->service_type, local_handle->domain,
                        NULL, htons((unsigned short int)reg->port),
-                       1, "", __dnssd_register_reply_cb,
+                       length, data, __dnssd_register_reply_cb,
                        NULL);
        if (ret < 0) {
                DNSSD_LOGE("Failed to register for dns service, error[%s]",     //LCOV_EXCL_LINE
index f3bedfc..9b22978 100644 (file)
@@ -225,6 +225,9 @@ int test_dnssd_register_local_service()
        int rv;
        char service_name[255] = {0,};
        int port;
+       char buffer[255];
+       char key[10];
+       unsigned short buf_len;
 
        printf("Register DNS Service\n");
        printf("Enter Local Service Handler:\n");
@@ -245,6 +248,18 @@ int test_dnssd_register_local_service()
                return 0;
        }
 
+       printf("Enter length of TXT Record:\n");
+       rv = scanf("%hu", &buf_len);
+
+       test_get_user_bytes("Enter record data:", buffer, 255);
+       test_get_user_string("Enter TXT Record key:", key, 10);
+
+       rv = dnssd_service_add_txt_record(service, key, buf_len, buffer);
+       if (rv != DNSSD_ERROR_NONE) {
+               printf("Failed to set txt record value\n");
+               return 0;
+       }
+
        rv = dnssd_register_local_service(service, dnssd_register_reply, NULL);
        if (rv != DNSSD_ERROR_NONE) {
                printf("Failed to register for dns service, error [%s]",