Tizen 2.0 release
[framework/connectivity/obexd.git] / plugins / opp.c
index 9a80c15..8b098f5 100644 (file)
@@ -45,7 +45,6 @@
 #define VCARD_FILE CONFIGDIR "/vcard.vcf"
 
 #define OPP_CHANNEL    9
-
 #ifdef TIZEN_PATCH
 /* We do not support iCal, vNote, vMessage */
 #define OPP_RECORD "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>        \
       <uint8 value=\"0xff\"/>                                  \
     </sequence>                                                        \
   </attribute>                                                 \
+  <attribute id=\"0x0200\">                                    \
+    <uint16 value=\"%u\" name=\"psm\"/>                                \
+  </attribute>                                                 \
 </record>"
 
 #else
-
 #define OPP_RECORD "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>        \
 <record>                                                       \
   <attribute id=\"0x0001\">                                    \
     <sequence>                                                 \
       <sequence>                                               \
         <uuid value=\"0x1105\"/>                               \
-        <uint16 value=\"0x0100\" name=\"version\"/>            \
+        <uint16 value=\"0x0102\" name=\"version\"/>            \
       </sequence>                                              \
     </sequence>                                                        \
   </attribute>                                                 \
       <uint8 value=\"0xff\"/>                                  \
     </sequence>                                                        \
   </attribute>                                                 \
+  <attribute id=\"0x0200\">                                    \
+    <uint16 value=\"%u\" name=\"psm\"/>                                \
+  </attribute>                                                 \
 </record>"
 #endif
-
 static void *opp_connect(struct obex_session *os, int *err)
 {
        manager_register_transfer(os);
@@ -169,7 +172,7 @@ static int opp_chkput(struct obex_session *os, void *user_data)
        int err;
 
        if (obex_get_size(os) == OBJECT_SIZE_DELETE)
-               return -EINVAL;
+               return -ENOSYS;
 
        t = obex_get_name(os);
        if (t != NULL && !is_filename(t))
@@ -203,12 +206,15 @@ skip_auth:
 
        path = g_build_filename(folder, name, NULL);
 
-       manager_emit_transfer_started(os);
-
        err = obex_put_stream_start(os, path);
 
        g_free(path);
 
+       if (err < 0)
+               goto failed;
+
+       manager_emit_transfer_started(os);
+
 failed:
        g_free(folder);
        g_free(name);
@@ -269,6 +275,7 @@ static struct obex_service_driver driver = {
 #ifdef TIZEN_PATCH
        .secure = TRUE,
 #endif
+       .port = OBEX_PORT_RANDOM,
        .record = OPP_RECORD,
        .connect = opp_connect,
        .progress = opp_progress,