static unsigned long aoutstd_getrinfo(rlist *rl,int xtern,char *sname,int be) /* Convert vasm relocation type into standard a.out relocations, */ /* as used by M68k and x86 targets. */ /* For xtern=-1, return true when this relocation requires a base symbol. */ { nreloc *nr; unsigned long r=0,s=4; int b=0; if (nr = (nreloc *)rl->reloc) { switch (rl->type) { case REL_ABS: b=-1; break; case REL_PC: b=RSTDB_pcrel; break; case REL_SD: b=RSTDB_baserel; break; } if (xtern == -1) /* just query symbol-based relocation */ return b==RSTDB_baserel || b==RSTDB_jmptable; if ((nr->offset&7)==0 && (nr->mask & MAKEMASK(nr->size)) == MAKEMASK(nr->size)) { switch (nr->size) { case 8: s=0; break; case 16: s=1; break; case 32: s=2; break; } } if (b && s<4) { if (b > 0) setbits(be,&r,sizeof(r)<<3,(unsigned)b,1,1); setbits(be,&r,sizeof(r)<<3,RSTDB_length,RSTDS_length,s); setbits(be,&r,sizeof(r)<<3,RSTDB_extern,RSTDS_extern,xtern?1:0); return readbits(be,&r,sizeof(r)<<3,RELB_reloc,RELS_reloc); } } unsupp_reloc_error(rl); return ~0; }
static int init_main(void) { size_t i; char *last; hashdata data; mnemohash=new_hashtable(MNEMOHTABSIZE); i=0; while(i<mnemonic_cnt) { data.idx=i; last=mnemonics[i].name; add_hashentry(mnemohash,mnemonics[i].name,data); do { i++; } while(i<mnemonic_cnt&&!strcmp(last,mnemonics[i].name)); } if(DEBUG) { if(mnemohash->collisions) printf("*** %d mnemonic collisions!!\n",mnemohash->collisions); } symhash=new_hashtable(SYMHTABSIZE); new_include_path("."); taddrmask=MAKEMASK(bytespertaddr<<3); return 1; }
/*#define TAIL_RESTART 120*60*/ /*#define NOBODY 65534*/ /* Can't do this so that we can run iptables */ #define DEFAULT_MAIL_LOG "/var/log/mail.log" #define uint32_t unsigned long #define PACKADDR(a, b, c, d) (((uint32_t)(a) << 24) | ((b) << 16) | ((c) << 8) | (d)) #define MAKEMASK(bits) ((uint32_t)(0xffffffff << (bits))) static const struct cidr_net { uint32_t base; uint32_t mask; } localNets[] = { /*{ PACKADDR(127, 0, 0, 0), MAKEMASK(8) }, /* 127.0.0.0/8 */ { PACKADDR(192, 168, 0, 0), MAKEMASK(16) }, /* 192.168.0.0/16 - RFC3330 */ /*{ PACKADDR(192, 0, 2, 0), MAKEMASK(24) }, /* 192.0.2.0/24 - RFC3330 */ { PACKADDR( 10, 0, 0, 0), MAKEMASK(8) }, /* 10.0.0.0/8 */ { PACKADDR(172, 16, 0, 0), MAKEMASK(12) }, /* 172.16.0.0/12 */ { PACKADDR(169, 254, 0, 0), MAKEMASK(16) }, /* 169.254.0.0/16 */ { 0, 0 } }, whiteNets[] = { { PACKADDR(212, 159, 0, 0), MAKEMASK(19) }, /* F9 - 212.159.0.0/19 */ { PACKADDR(84, 93, 229, 0), MAKEMASK(8) }, /* F9 - 84.93.229.0/8 */ { PACKADDR(217, 157, 23, 243), MAKEMASK(0) }, /* njh.softcom.dk */ { PACKADDR(204, 15, 80, 0), MAKEMASK(22) }, /* Spamcop */ { 0, 0 } }; struct privdata { char ip[INET_ADDRSTRLEN]; /* IP address of the other end */