jingle/action-handlers.c
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Fri, 11 Jun 2010 01:56:34 +0200
changeset 19 60a10ab26723
parent 18 d0ddcfd31eb8
child 26 af14f8f5a2b6
permissions -rw-r--r--
Modify the "registering" code. Use directly g_slist_foreach(..,g_free(),..) to free a list.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     1
/*
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     2
 * action-handlers.c
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     3
 *
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     4
 * Copyrigth (C) 2010 Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     5
 *
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     8
 * the Free Software Foundation; either version 2 of the License, or (at
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
     9
 * your option) any later version.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    10
 *
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    11
 * This program is distributed in the hope that it will be useful, but
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    12
 * WITHOUT ANY WARRANTY; without even the implied warranty of
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    14
 * General Public License for more details.
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    15
 *
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    16
 * You should have received a copy of the GNU General Public License
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    17
 * along with this program; if not, write to the Free Software
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    18
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    19
 * USA
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    20
 */
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    21
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    22
#include <glib.h>
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    23
19
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    24
#include <mcabber/logprint.h>
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    25
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 17
diff changeset
    26
#include <jingle/jingle.h>
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 17
diff changeset
    27
#include <jingle/check.h>
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    28
15
61ffa66f8288 Include config.h. The file transfert module now add the corresponding
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 14
diff changeset
    29
61ffa66f8288 Include config.h. The file transfert module now add the corresponding
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 14
diff changeset
    30
void handle_session_initiate(LmMessage *m, JingleNode *jn)
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    31
{
19
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    32
  GError *err = NULL;
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    33
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    34
  if (!check_contents(jn, &err)) {
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    35
    scr_log_print(LPRINT_DEBUG, "jingle: One of the content element was invalid (%s)",
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    36
                  err->message);
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    37
    jingle_send_iq_error(m, "cancel", "bad-request", NULL);
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    38
    return;
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    39
  }
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    40
15
61ffa66f8288 Include config.h. The file transfert module now add the corresponding
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 14
diff changeset
    41
  // a session-initiate message must contains at least one <content> element
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 17
diff changeset
    42
  if (g_slist_length(jn->content) < 1) {
16
cb085682970f Fix a few errors in the code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 15
diff changeset
    43
    jingle_send_iq_error(m, "cancel", "bad-request", NULL);
17
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    44
    return;
15
61ffa66f8288 Include config.h. The file transfert module now add the corresponding
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 14
diff changeset
    45
  }
17
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    46
19
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    47
60a10ab26723 Modify the "registering" code.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 18
diff changeset
    48
18
d0ddcfd31eb8 Change the way the header files are included.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 17
diff changeset
    49
  /*// if a session with the same sid already exists
17
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    50
  if (session_find(jn) != NULL) {
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    51
    jingle_send_iq_error(m, "cancel", "unexpected-request", "out-of-order");
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    52
    return;
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    53
  }*/
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    54
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    55
  jingle_ack_iq(m);
14
77966ed56e14 Create two subdirectories.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents:
diff changeset
    56
}
17
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    57
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    58
void handle_session_terminate(LmMessage *m, JingleNode *jn)
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    59
{
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    60
  /*if (session_find(jn) == NULL) {
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    61
    jingle_send_iq_error(m, "cancel", "item-not-found", "unknown-session");
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    62
    return;
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    63
  }*/
24aa7414bafd Start the transport/app registering code. Fix various things.
Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
parents: 16
diff changeset
    64
}