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;
}
예제 #2
0
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);