int DialogLinkChecker::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QDialog::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: setLinks((*reinterpret_cast< QStringList(*)>(_a[1]))); break; case 1: tampil(); break; case 2: checkSingleLink(); break; case 3: selectLink(); break; case 4: browse(); break; case 5: ok(); break; case 6: clOse(); break; default: ; } _id -= 7; } return _id; }
int SS7MTPM3UA::msg_from_sctp(void *ptr) { struct SigtranMsg *st; unsigned *uptr, *parameter; SS7MESSAGE *ss7msg; struct ProtocolData *pd; int len; int status; int sls; uptr = (unsigned*) ptr; st = (struct SigtranMsg *) (&uptr[1]); switch(st->MsgClass){ case ClassMGMT: if(st->MsgType == MGMT_NTFY){ if(debug&MANAGEMENT_TRAFFIC) log("rx NTFY",0,0); parameter = get_by_tag(TAG_Status,uptr); if(! parameter){ log("rx NTFY without Status",0,0); return 1; } status = ntohs(parameter[1]&0xFFFF); switch(status){ case Status_AS_Inactive: if(debug&MANAGEMENT_TRAFFIC) log("rx AS-Inactive",0,0); parameter = get_by_tag(TAG_Routing_context,uptr); post_ASPAC(parameter); return 0; case Status_AS_Active: log("rx AS-Active",0,0); return 0; case Status_AS_Pending: log("rx AS-Pending",0,0); return 0; } } else if(debug&MANAGEMENT_TRAFFIC) log("rx MGMT",0,0); return 0; case ClassTransfer: if(st->MsgType == M3UA_DATA){ uptr = get_by_tag(TAG_ProtocolData,ptr); if(uptr) { len = ntohs(uptr[0]>>16) - 16; // (tag, len),opc,dpc,(si..sls) if(len >= (SS7MsgLen-8)){ log("msg is too long",2,(char*)&len); } pd = (struct ProtocolData *)(&(uptr[1])); ss7msg = (SS7MESSAGE *)freebuffer; mem(); ss7msg->body.su.mtp3.bitfield.opc = htonl(pd->opc); ss7msg->body.su.mtp3.bitfield.dpc = htonl(pd->dpc); ss7msg->body.su.mtp2.bitfield.si = pd->si; ss7msg->body.su.mtp2.bitfield.ssf = pd->ni<<2; sls = pd->sls&0x0F; ss7msg->body.su.mtp3.bitfield.sls = sls; memcpy(&(ss7msg->body.su.user.isup.cic),&(pd->upd[0]),len); ss7msg->len = len+8; post(link[selectLink(sls)],SS7_LINKTRANSFER,ss7msg); }} else if(debug&ALL_TRAFFIC) log("rx Transfer ignored",0,0);