Changeset 629

Show
Ignore:
Timestamp:
15/07/08 12:30:30 (4 months ago)
Author:
smoku
Message:

Removed jid prep cache and mysql filters cache.
These are known to grow without restrictions causing memory "leak". Patches by Mark Doliner. Refs #219

Location:
trunk
Files:
31 modified

Legend:

Unmodified
Added
Removed
  • trunk/c2s/authreg.c

    r545 r629  
    333333 
    334334        /* the full user jid for this session */ 
    335         sess->resources->jid = jid_new(c2s->pc, sess->s->req_to, -1); 
     335        sess->resources->jid = jid_new(sess->s->req_to, -1); 
    336336        jid_reset_components(sess->resources->jid, username, sess->resources->jid->domain, resource); 
    337337 
     
    594594 
    595595    /* the user jid for this transaction */ 
    596     sess->resources->jid = jid_new(c2s->pc, sess->s->req_to, -1); 
     596    sess->resources->jid = jid_new(sess->s->req_to, -1); 
    597597    jid_reset_components(sess->resources->jid, username, sess->resources->jid->domain, sess->resources->jid->resource); 
    598598 
  • trunk/c2s/c2s.c

    r626 r629  
    238238            if((ns = nad_find_scoped_namespace(nad, uri_BIND, NULL)) >= 0 && (elem = nad_find_elem(nad, 0, ns, "bind", 1)) >= 0 && nad_find_attr(nad, 0, -1, "type", "set") >= 0) { 
    239239                bres_t bres; 
    240                 jid_t jid = jid_new(sess->c2s->pc, sess->s->auth_id, -1); 
     240                jid_t jid = jid_new(sess->s->auth_id, -1); 
    241241 
    242242                /* get the resource */ 
     
    984984 
    985985                /* build temporary resource to close session for */ 
    986                 jid = jid_new(sess->c2s->pc, sess->s->auth_id, -1); 
     986                jid = jid_new(sess->s->auth_id, -1); 
    987987                tres = (bres_t) calloc(1, sizeof(struct bres_st)); 
    988988                tres->jid = jid; 
  • trunk/c2s/c2s.h

    r564 r629  
    237237    int                 stanza_size_limit; 
    238238 
    239     /** stringprep cache */ 
    240     prep_cache_t        pc; 
    241  
    242239    /** access controls */ 
    243240    access_t            access; 
  • trunk/c2s/main.c

    r564 r629  
    404404 
    405405            /* authzid must be a valid jid */ 
    406             jid.pc = c2s->pc; 
    407406            if(jid_reset(&jid, creds->authzid, -1) == NULL) 
    408407                return sx_sasl_ret_FAIL; 
     
    430429        case sx_sasl_cb_GEN_AUTHZID: 
    431430            /* generate a jid for SASL ANONYMOUS */ 
    432             jid.pc = c2s->pc; 
    433431            jid_reset(&jid, s->req_to, -1); 
    434432 
     
    636634        } 
    637635 
    638     c2s->pc = prep_cache_new(); 
    639  
    640636    c2s->sessions = xhash_new(1023); 
    641637 
     
    827823    xhash_free(c2s->sessions); 
    828824 
    829     prep_cache_free(c2s->pc); 
    830  
    831825    authreg_free(c2s->ar); 
    832826 
  • trunk/router/main.c

    r564 r629  
    382382    r->conn_rates = xhash_new(101); 
    383383 
    384     r->pc = prep_cache_new(); 
    385  
    386384    r->components = xhash_new(101); 
    387385    r->routes = xhash_new(101); 
     
    508506    sx_env_free(r->sx_env); 
    509507 
    510     prep_cache_free(r->pc); 
    511  
    512508    mio_free(r->mio); 
    513509 
  • trunk/router/router.c

    r511 r629  
    144144 
    145145    attr = nad_find_attr(nad, 0, -1, "name", NULL); 
    146     if(attr < 0 || (name = jid_new(comp->r->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     146    if(attr < 0 || (name = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    147147        log_debug(ZONE, "no or invalid 'name' on bind packet, bouncing"); 
    148148        nad_set_attr(nad, 0, -1, "error", "400", 3); 
     
    267267 
    268268    attr = nad_find_attr(nad, 0, -1, "name", NULL); 
    269     if(attr < 0 || (name = jid_new(comp->r->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     269    if(attr < 0 || (name = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    270270        log_debug(ZONE, "no or invalid 'name' on unbind packet, bouncing"); 
    271271        nad_set_attr(nad, 0, -1, "error", "400", 3); 
     
    365365    afrom = nad_find_attr(nad, 0, -1, "from", NULL); 
    366366 
    367     sto.pc = sfrom.pc = comp->r->pc; 
    368367    if(ato >= 0) to = jid_reset(&sto, NAD_AVAL(nad, ato), NAD_AVAL_L(nad, ato)); 
    369368    if(afrom >= 0) from = jid_reset(&sfrom, NAD_AVAL(nad, afrom), NAD_AVAL_L(nad, afrom)); 
     
    714713                log_debug(ZONE, "packet from legacy component, munging it"); 
    715714 
    716                 sto.pc = sfrom.pc = comp->r->pc; 
    717  
    718715                attr = nad_find_attr(nad, 0, -1, "to", NULL); 
    719716                if(attr < 0 || (to = jid_reset(&sto, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
  • trunk/router/router.h

    r425 r629  
    125125 
    126126    time_t              next_check; 
    127                         
    128     /** stringprep cache */ 
    129     prep_cache_t        pc; 
    130      
     127 
    131128    /** attached components, key is 'ip:port', var is component_t */ 
    132129    xht                 components; 
  • trunk/s2s/in.c

    r576 r629  
    335335 
    336336    attr = nad_find_attr(nad, 0, -1, "from", NULL); 
    337     if(attr < 0 || (from = jid_new(in->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     337    if(attr < 0 || (from = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    338338        log_debug(ZONE, "missing or invalid from on db result packet"); 
    339339        nad_free(nad); 
     
    342342 
    343343    attr = nad_find_attr(nad, 0, -1, "to", NULL); 
    344     if(attr < 0 || (to = jid_new(in->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     344    if(attr < 0 || (to = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    345345        log_debug(ZONE, "missing or invalid to on db result packet"); 
    346346        jid_free(from); 
     
    429429     
    430430    attr = nad_find_attr(nad, 0, -1, "from", NULL); 
    431     if(attr < 0 || (from = jid_new(in->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     431    if(attr < 0 || (from = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    432432        log_debug(ZONE, "missing or invalid from on db verify packet"); 
    433433        nad_free(nad); 
     
    436436 
    437437    attr = nad_find_attr(nad, 0, -1, "to", NULL); 
    438     if(attr < 0 || (to = jid_new(in->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     438    if(attr < 0 || (to = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    439439        log_debug(ZONE, "missing or invalid to on db verify packet"); 
    440440        jid_free(from); 
     
    504504     
    505505    attr = nad_find_attr(nad, 0, -1, "from", NULL); 
    506     if(attr < 0 || (from = jid_new(in->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     506    if(attr < 0 || (from = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    507507        log_debug(ZONE, "missing or invalid from on incoming packet"); 
    508508        nad_free(nad); 
     
    511511 
    512512    attr = nad_find_attr(nad, 0, -1, "to", NULL); 
    513     if(attr < 0 || (to = jid_new(in->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     513    if(attr < 0 || (to = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    514514        log_debug(ZONE, "missing or invalid to on incoming packet"); 
    515515        jid_free(from); 
  • trunk/s2s/main.c

    r627 r629  
    677677    s2s->dns_bad = xhash_new(401); 
    678678 
    679     s2s->pc = prep_cache_new(); 
    680  
    681679    s2s->dead = jqueue_new(); 
    682680    s2s->dead_conn = jqueue_new(); 
     
    926924    xhash_free(s2s->hosts); 
    927925 
    928     prep_cache_free(s2s->pc); 
    929  
    930926    jqueue_free(s2s->dead); 
    931927    jqueue_free(s2s->dead_conn); 
  • trunk/s2s/out.c

    r600 r629  
    14901490 
    14911491    attr = nad_find_attr(nad, 0, -1, "from", NULL); 
    1492     if(attr < 0 || (from = jid_new(out->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     1492    if(attr < 0 || (from = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    14931493        log_debug(ZONE, "missing or invalid from on db result packet"); 
    14941494        nad_free(nad); 
     
    14971497 
    14981498    attr = nad_find_attr(nad, 0, -1, "to", NULL); 
    1499     if(attr < 0 || (to = jid_new(out->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     1499    if(attr < 0 || (to = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    15001500        log_debug(ZONE, "missing or invalid to on db result packet"); 
    15011501        jid_free(from); 
     
    15591559     
    15601560    attr = nad_find_attr(nad, 0, -1, "from", NULL); 
    1561     if(attr < 0 || (from = jid_new(out->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     1561    if(attr < 0 || (from = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    15621562        log_debug(ZONE, "missing or invalid from on db verify packet"); 
    15631563        nad_free(nad); 
     
    15661566 
    15671567    attr = nad_find_attr(nad, 0, -1, "to", NULL); 
    1568     if(attr < 0 || (to = jid_new(out->s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
     1568    if(attr < 0 || (to = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr))) == NULL) { 
    15691569        log_debug(ZONE, "missing or invalid to on db verify packet"); 
    15701570        jid_free(from); 
  • trunk/s2s/router.c

    r599 r629  
    255255 
    256256            attr = nad_find_attr(nad, 0, -1, "from", NULL); 
    257             pkt->from = jid_new(s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
     257            pkt->from = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
    258258 
    259259            attr = nad_find_attr(nad, 0, -1, "to", NULL); 
    260             pkt->to = jid_new(s2s->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
     260            pkt->to = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
    261261 
    262262            /* change the packet so it looks like it came to us, so the router won't reject it if we bounce it later */ 
  • trunk/s2s/s2s.h

    r576 r629  
    158158    time_t              next_expiry; 
    159159 
    160     /** stringprep cache */ 
    161     prep_cache_t        pc; 
    162  
    163160    /** list of sx_t on the way out */ 
    164161    jqueue_t            dead; 
  • trunk/sm/aci.c

    r2 r629  
    6262            if(NAD_CDATA_L(sm->config->nad, jelem) > 0) 
    6363            { 
    64                 jid = jid_new(sm->pc, NAD_CDATA(sm->config->nad, jelem), NAD_CDATA_L(sm->config->nad, jelem)); 
     64                jid = jid_new(NAD_CDATA(sm->config->nad, jelem), NAD_CDATA_L(sm->config->nad, jelem)); 
    6565                list = jid_append(list, jid); 
    6666                 
  • trunk/sm/main.c

    r564 r629  
    263263    sm_signature(sm, PACKAGE " sm " VERSION); 
    264264 
    265     sm->pc = prep_cache_new(); 
    266  
    267265    /* start storage */ 
    268266    sm->st = storage_new(sm); 
     
    400398    sx_env_free(sm->sx_env); 
    401399 
    402     prep_cache_free(sm->pc); 
    403  
    404400    log_free(sm->log); 
    405401 
  • trunk/sm/mod_announce.c

    r532 r629  
    330330    data->index = mod->index; 
    331331 
    332     jid = jid_new(mod->mm->sm->pc, mod->mm->sm->id, -1); 
     332    jid = jid_new(mod->mm->sm->id, -1); 
    333333    data->announcejid = jid_reset_components(jid, jid->node, jid->domain, "announce"); 
    334     jid = jid_new(mod->mm->sm->pc, mod->mm->sm->id, -1); 
     334    jid = jid_new(mod->mm->sm->id, -1); 
    335335    data->onlinejid = jid_reset_components(jid, jid->node, jid->domain, "announce/online"); 
    336336 
  • trunk/sm/mod_disco.c

    r547 r629  
    705705        svc->features = xhash_new(13); 
    706706 
    707         svc->jid = jid_new(mod->mm->sm->pc, NAD_AVAL(nad, jid), NAD_AVAL_L(nad, jid)); 
     707        svc->jid = jid_new(NAD_AVAL(nad, jid), NAD_AVAL_L(nad, jid)); 
    708708 
    709709        /* link it in */ 
  • trunk/sm/mod_disco_publish.c

    r545 r629  
    100100 
    101101        /* jid */ 
    102         di->jid = jid_new(mod->mm->sm->pc, NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
     102        di->jid = jid_new(NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
    103103 
    104104        /* name */ 
     
    275275                di = (disco_item_t) calloc(1, sizeof(struct disco_item_st)); 
    276276 
    277                 di->jid = jid_new(mod->mm->sm->pc, str, -1); 
     277                di->jid = jid_new(str, -1); 
    278278 
    279279                if(os_object_get_str(os, o, "name", &str)) 
  • trunk/sm/mod_echo.c

    r532 r629  
    6363 
    6464    /* store sm/echo jid for use when answering probes */ 
    65     jid = jid_new(mod->mm->sm->pc, mod->mm->sm->id, -1); 
     65    jid = jid_new(mod->mm->sm->id, -1); 
    6666    mod->private = jid_reset_components(jid, jid->node, jid->domain, "echo"); 
    6767 
  • trunk/sm/mod_help.c

    r532 r629  
    161161 
    162162    /* store sm/help jid for use when answering probes */ 
    163     hlpjid = jid_new(mod->mm->sm->pc, mod->mm->sm->id, -1); 
     163    hlpjid = jid_new(mod->mm->sm->id, -1); 
    164164    mod->private = jid_reset_components(hlpjid, hlpjid->node, hlpjid->domain, "help"); 
    165165 
  • trunk/sm/mod_presence.c

    r532 r629  
    184184 
    185185    /* store sm jid for use when answering probes */ 
    186     mod->private = jid_new(mod->mm->sm->pc, mod->mm->sm->id, -1); 
     186    mod->private = jid_new(mod->mm->sm->id, -1); 
    187187 
    188188    mod->in_sess = _presence_in_sess; 
  • trunk/sm/mod_privacy.c

    r558 r629  
    205205 
    206206                        case zebra_JID: 
    207                             zitem->jid = jid_new(user->sm->pc, str, strlen(str)); 
     207                            zitem->jid = jid_new(str, strlen(str)); 
    208208                            if(zitem->jid == NULL) { 
    209209                                log_debug(ZONE, "invalid jid '%s' on item, dropping this item", str); 
     
    757757                    return -stanza_err_BAD_REQUEST; 
    758758 
    759                 jidt = jid_new(sess->user->sm->pc, NAD_AVAL(pkt->nad, jid), NAD_AVAL_L(pkt->nad, jid)); 
     759                jidt = jid_new(NAD_AVAL(pkt->nad, jid), NAD_AVAL_L(pkt->nad, jid)); 
    760760                if(jidt == NULL) 
    761761                    return -stanza_err_BAD_REQUEST; 
     
    787787                        zitem->type = zebra_JID; 
    788788 
    789                         zitem->jid = jid_new(sess->user->sm->pc, NAD_AVAL(pkt->nad, jid), NAD_AVAL_L(pkt->nad, jid)); 
     789                        zitem->jid = jid_new(NAD_AVAL(pkt->nad, jid), NAD_AVAL_L(pkt->nad, jid)); 
    790790                        pool_cleanup(zlist->p, (void *) jid_free, zitem->jid); 
    791791                        zitem->deny = 1; 
     
    977977                        zitem->type = zebra_JID; 
    978978 
    979                         zitem->jid = jid_new(mod->mm->sm->pc, NAD_AVAL(pkt->nad, value), NAD_AVAL_L(pkt->nad, value)); 
     979                        zitem->jid = jid_new(NAD_AVAL(pkt->nad, value), NAD_AVAL_L(pkt->nad, value)); 
    980980                        if(zitem->jid == NULL) { 
    981981                            log_debug(ZONE, "invalid jid '%.*s', failing request", NAD_AVAL_L(pkt->nad, value), NAD_AVAL(pkt->nad, value)); 
  • trunk/sm/mod_roster.c

    r614 r629  
    183183        jid_free(pkt->from); 
    184184 
    185     pkt->from = jid_new(mod->mm->sm->pc, jid_user(sess->jid), -1); 
     185    pkt->from = jid_new(jid_user(sess->jid), -1); 
    186186    nad_set_attr(pkt->nad, 1, -1, "from", jid_full(pkt->from), 0); 
    187187 
     
    281281    /* extract the jid */ 
    282282    attr = nad_find_attr(pkt->nad, elem, -1, "jid", NULL); 
    283     jid = jid_new(pkt->sm->pc, NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
     283    jid = jid_new(NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
    284284    if(jid == NULL) { 
    285285        log_debug(ZONE, "jid failed prep check, skipping"); 
     
    676676                    item = (item_t) calloc(1, sizeof(struct item_st)); 
    677677 
    678                     item->jid = jid_new(mi->mod->mm->sm->pc, str, -1); 
     678                    item->jid = jid_new(str, -1); 
    679679                    if(item->jid == NULL) { 
    680680                        log_debug(ZONE, "eek! invalid jid %s, skipping it", str); 
  • trunk/sm/mod_roster_publish.c

    r570 r629  
    234234                        checksm=0; 
    235235                        if( jid ) jid_free(jid); 
    236                         jid = jid_new(user->sm->pc, str, -1); 
     236                        jid = jid_new(str, -1); 
    237237                        if( roster_publish->removedomain ) { 
    238238                            if( strcmp(jid->domain,roster_publish->removedomain) == 0 ) { 
     
    307307                            item = (item_t) calloc(1, sizeof(struct item_st)); 
    308308 
    309                             item->jid = jid_new(mi->mod->mm->sm->pc, jid_user(jid), -1); 
     309                            item->jid = jid_new(jid_user(jid), -1); 
    310310                            if(item->jid == NULL) { 
    311311                                log_debug(ZONE, "eek! invalid jid %s, skipping it", jid_user(jid)); 
  • trunk/sm/mod_session.c

    r446 r629  
    8787        /* session start */ 
    8888        if(pkt->type == pkt_SESS) { 
    89             jid = jid_new(sm->pc, NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
     89            jid = jid_new(NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
    9090 
    9191            if(jid != NULL) 
     
    127127        /* user create */ 
    128128        if(pkt->type == pkt_SESS_CREATE) { 
    129             jid = jid_new(sm->pc, NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
     129            jid = jid_new(NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
    130130 
    131131            if(jid == NULL || user_create(sm, jid) != 0) { 
     
    154154        /* user delete */ 
    155155        if(pkt->type == pkt_SESS_DELETE) { 
    156             jid = jid_new(sm->pc, NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
     156            jid = jid_new(NAD_AVAL(pkt->nad, attr), NAD_AVAL_L(pkt->nad, attr)); 
    157157            if(jid == NULL) { 
    158158                pkt_free(pkt); 
  • trunk/sm/mod_status.c

    r534 r629  
    238238    tr->resource = config_get_one(mod->mm->sm->config, "status.resource", 0); 
    239239    if(tr->resource) { 
    240         tr->jid = jid_new(mod->mm->sm->pc, mod->mm->sm->id, -1); 
     240        tr->jid = jid_new(mod->mm->sm->id, -1); 
    241241        tr->jid = jid_reset_components(tr->jid, tr->jid->node, tr->jid->domain, tr->resource); 
    242242    } 
  • trunk/sm/mod_template_roster.c

    r545 r629  
    114114        item = (item_t) pmalloco(xhash_pool(tr->items), sizeof(struct item_st)); 
    115115 
    116         item->jid = jid_new(tr->sm->pc, NAD_AVAL(nad, ajid), NAD_AVAL_L(nad, ajid)); 
     116        item->jid = jid_new(NAD_AVAL(nad, ajid), NAD_AVAL_L(nad, ajid)); 
    117117        if(item->jid == NULL) { 
    118118            log_write(tr->sm->log, LOG_ERR, "roster template has item with invalid jid, skipping"); 
  • trunk/sm/pkt.c

    <
    r615 r629  
    8484    /* set replacement attrs */ 
    8585    if(to != NULL) { 
    86         pnew->to = jid_new(pkt->sm->pc, to, -1); 
     86        pnew->to = jid_new(to, -1); 
    8787        nad_set_attr(pnew->nad, 1, -1, "to", jid_full(pnew->to), 0); 
    8888    } else if(pkt->to != NULL) 
     
    9090 
    9191    if(from != NULL) { 
    92         pnew->from = jid_new(pkt->sm->pc, from, -1); 
     92        pnew->from = jid_new(from, -1); 
    9393        nad_set_attr(pnew->nad, 1, -1, "from", jid_full(pnew->from), 0); 
    9494    } else if(pkt->from != NULL) 
     
    124124        /* route element */ 
    125125        if((attr = nad_find_attr(nad, 0, -1, "to", NULL)) >= 0) 
    126             pkt->rto = jid_new(sm->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
     126            pkt->rto = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
    127127        if((attr = nad_find_attr(nad, 0, -1, "from", NULL)) >= 0) 
    128             pkt->rfrom = jid_new(sm->pc, NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
     128            pkt->rfrom = jid_new(NAD_AVAL(nad, attr), NAD_AVAL_L(nad, attr)); 
    129129 
    130130        /* route type */