chan_sip: Fix a small TEST_FRAMEWORK related error that prevents compiling
[asterisk/asterisk.git] / channels / sip / dialplan_functions.c
index 6e1f65b..fd8b04f 100644 (file)
@@ -39,7 +39,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 int sip_acf_channel_read(struct ast_channel *chan, const char *funcname, char *preparse, char *buf, size_t buflen)
 {
-       struct sip_pvt *p = chan->tech_pvt;
+       struct sip_pvt *p = ast_channel_tech_pvt(chan);
        char *parse = ast_strdupa(preparse);
        int res = 0;
        AST_DECLARE_APP_ARGS(args,
@@ -47,10 +47,17 @@ int sip_acf_channel_read(struct ast_channel *chan, const char *funcname, char *p
                AST_APP_ARG(type);
                AST_APP_ARG(field);
        );
+               
+       /* Check for zero arguments */
+       if (ast_strlen_zero(parse)) {
+               ast_log(LOG_ERROR, "Cannot call %s without arguments\n", funcname);
+               return -1;
+       }
+
        AST_STANDARD_APP_ARGS(args, parse);
 
        /* Sanity check */
-       if (!IS_SIP_TECH(chan->tech)) {
+       if (!IS_SIP_TECH(ast_channel_tech(chan))) {
                ast_log(LOG_ERROR, "Cannot call %s on a non-SIP channel\n", funcname);
                return 0;
        }
@@ -225,7 +232,7 @@ int sip_acf_channel_read(struct ast_channel *chan, const char *funcname, char *p
 }
 
 #ifdef TEST_FRAMEWORK
-static int test_sip_rtpqos_1_new(struct ast_rtp_instance *instance, struct sched_context *sched, struct ast_sockaddr *addr, void *data)
+static int test_sip_rtpqos_1_new(struct ast_rtp_instance *instance, struct ast_sched_context *sched, struct ast_sockaddr *addr, void *data)
 {
        /* Needed to pass sanity checks */
        ast_rtp_instance_set_data(instance, data);
@@ -316,7 +323,7 @@ AST_TEST_DEFINE(test_sip_rtpqos_1)
        switch (cmd) {
        case TEST_INIT:
                info->name = "test_sip_rtpqos";
-               info->category = "channels/chan_sip/";
+               info->category = "/channels/chan_sip/";
                info->summary = "Test retrieval of SIP RTP QOS stats";
                info->description =
                        "Verify values in the RTP instance structure can be accessed through the dialplan.";
@@ -327,7 +334,7 @@ AST_TEST_DEFINE(test_sip_rtpqos_1)
 
        ast_rtp_engine_register2(&test_engine, NULL);
        /* Have to associate this with a SIP pvt and an ast_channel */
-       if (!(p = sip_alloc(NULL, NULL, 0, SIP_NOTIFY, NULL))) {
+       if (!(p = sip_alloc(NULL, NULL, 0, SIP_NOTIFY, NULL, NULL))) {
                res = AST_TEST_NOT_RUN;
                goto done;
        }
@@ -341,8 +348,8 @@ AST_TEST_DEFINE(test_sip_rtpqos_1)
                res = AST_TEST_NOT_RUN;
                goto done;
        }
-       chan->tech = &sip_tech;
-       chan->tech_pvt = p;
+       ast_channel_tech_set(chan, &sip_tech);
+       ast_channel_tech_pvt_set(chan, p);
        p->owner = chan;
 
        varstr = ast_str_create(16);