Просмотр исходного кода

Remove unsupported "myalloc" code

z3APA3A 6 лет назад
Родитель
Сommit
8ad8a9ccd2
4 измененных файлов с 25 добавлено и 405 удалено
  1. 16 19
      src/Makefile.inc
  2. 0 366
      src/myalloc.c
  3. 0 16
      src/proxy.h
  4. 9 4
      src/structures.h

+ 16 - 19
src/Makefile.inc

@@ -11,9 +11,6 @@ sockmap$(OBJSUFFICS): sockmap.c proxy.h structures.h
 common$(OBJSUFFICS): common.c proxy.h structures.h
 common$(OBJSUFFICS): common.c proxy.h structures.h
 	$(CC) $(CFLAGS) common.c
 	$(CC) $(CFLAGS) common.c
 
 
-myalloc$(OBJSUFFICS): myalloc.c proxy.h structures.h
-	$(CC) $(CFLAGS) myalloc.c
-
 plugins$(OBJSUFFICS): plugins.c proxy.h structures.h
 plugins$(OBJSUFFICS): plugins.c proxy.h structures.h
 	$(CC) $(CFLAGS) plugins.c
 	$(CC) $(CFLAGS) plugins.c
 
 
@@ -53,26 +50,26 @@ udppm$(OBJSUFFICS): udppm.c proxy.h structures.h proxymain.c
 3proxy$(OBJSUFFICS): 3proxy.c proxy.h structures.h
 3proxy$(OBJSUFFICS): 3proxy.c proxy.h structures.h
 	$(CC) $(CFLAGS) 3proxy.c
 	$(CC) $(CFLAGS) 3proxy.c
 
 
-$(BUILDDIR)proxy$(EXESUFFICS): sockmap$(OBJSUFFICS) proxy$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) $(COMPATLIBS)
-	$(LN) $(LNOUT)$(BUILDDIR)proxy$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) proxy$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
+$(BUILDDIR)proxy$(EXESUFFICS): sockmap$(OBJSUFFICS) proxy$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) $(COMPATLIBS)
+	$(LN) $(LNOUT)$(BUILDDIR)proxy$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) proxy$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
 
 
-$(BUILDDIR)pop3p$(EXESUFFICS): sockmap$(OBJSUFFICS) pop3p$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS)
-	$(LN) $(LNOUT)$(BUILDDIR)pop3p$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) pop3p$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
+$(BUILDDIR)pop3p$(EXESUFFICS): sockmap$(OBJSUFFICS) pop3p$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS)
+	$(LN) $(LNOUT)$(BUILDDIR)pop3p$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) pop3p$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
 
 
-$(BUILDDIR)smtpp$(EXESUFFICS): sockmap$(OBJSUFFICS) smtpp$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) base64$(OBJSUFFICS) $(COMPATLIBS)
-	$(LN) $(LNOUT)$(BUILDDIR)smtpp$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) smtpp$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) base64$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
+$(BUILDDIR)smtpp$(EXESUFFICS): sockmap$(OBJSUFFICS) smtpp$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) base64$(OBJSUFFICS) $(COMPATLIBS)
+	$(LN) $(LNOUT)$(BUILDDIR)smtpp$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) smtpp$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) base64$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
 
 
-$(BUILDDIR)ftppr$(EXESUFFICS): sockmap$(OBJSUFFICS) ftppr$(OBJSUFFICS) ftp$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS)
-	$(LN) $(LNOUT)$(BUILDDIR)ftppr$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) ftppr$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) ftp$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
+$(BUILDDIR)ftppr$(EXESUFFICS): sockmap$(OBJSUFFICS) ftppr$(OBJSUFFICS) ftp$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) $(COMPATLIBS)
+	$(LN) $(LNOUT)$(BUILDDIR)ftppr$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) ftppr$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) ftp$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
 
 
-$(BUILDDIR)socks$(EXESUFFICS): sockmap$(OBJSUFFICS) socks$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS)
-	$(LN) $(LNOUT)$(BUILDDIR)socks$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) socks$(OBJSUFFICS) sockgetchar$(OBJSUFFICS)  myalloc$(OBJSUFFICS) common$(OBJSUFFICS) $(LIBS)
+$(BUILDDIR)socks$(EXESUFFICS): sockmap$(OBJSUFFICS) socks$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS)
+	$(LN) $(LNOUT)$(BUILDDIR)socks$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) socks$(OBJSUFFICS) sockgetchar$(OBJSUFFICS)  common$(OBJSUFFICS) $(LIBS)
 
 
-$(BUILDDIR)tcppm$(EXESUFFICS): sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) tcppm$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS)
-	$(LN) $(LNOUT)$(BUILDDIR)tcppm$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) tcppm$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) $(LIBS)
+$(BUILDDIR)tcppm$(EXESUFFICS): sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) tcppm$(OBJSUFFICS) common$(OBJSUFFICS)
+	$(LN) $(LNOUT)$(BUILDDIR)tcppm$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) tcppm$(OBJSUFFICS) common$(OBJSUFFICS) $(LIBS)
 
 
-$(BUILDDIR)udppm$(EXESUFFICS): sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) udppm$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS)
-	$(LN) $(LNOUT)$(BUILDDIR)udppm$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) udppm$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) $(LIBS)
+$(BUILDDIR)udppm$(EXESUFFICS): sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) udppm$(OBJSUFFICS) common$(OBJSUFFICS)
+	$(LN) $(LNOUT)$(BUILDDIR)udppm$(EXESUFFICS) $(LDFLAGS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) udppm$(OBJSUFFICS) common$(OBJSUFFICS) $(LIBS)
 
 
 mainfunc$(OBJSUFFICS): proxy.h structures.h proxymain.c
 mainfunc$(OBJSUFFICS): proxy.h structures.h proxymain.c
 	$(CC) $(COUT)mainfunc$(OBJSUFFICS) $(CFLAGS) $(DEFINEOPTION)MODULEMAINFUNC=mainfunc proxymain.c
 	$(CC) $(COUT)mainfunc$(OBJSUFFICS) $(CFLAGS) $(DEFINEOPTION)MODULEMAINFUNC=mainfunc proxymain.c
@@ -143,8 +140,8 @@ ntlm$(OBJSUFFICS):  ntlm.c
 stringtable$(OBJSUFFICS):  stringtable.c
 stringtable$(OBJSUFFICS):  stringtable.c
 	$(CC) $(COUT)stringtable$(OBJSUFFICS) $(CFLAGS) stringtable.c
 	$(CC) $(COUT)stringtable$(OBJSUFFICS) $(CFLAGS) stringtable.c
 
 
-$(BUILDDIR)3proxy$(EXESUFFICS): 3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) datatypes$(OBJSUFFICS) md4$(OBJSUFFICS) md5$(OBJSUFFICS) mycrypt$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS)
-	$(LN) $(LNOUT)$(BUILDDIR)3proxy$(EXESUFFICS) $(LDFLAGS) $(VERFILE)  3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) datatypes$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) myalloc$(OBJSUFFICS) common$(OBJSUFFICS) mycrypt$(OBJSUFFICS) md5$(OBJSUFFICS) md4$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
+$(BUILDDIR)3proxy$(EXESUFFICS): 3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) datatypes$(OBJSUFFICS) md4$(OBJSUFFICS) md5$(OBJSUFFICS) mycrypt$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS)
+	$(LN) $(LNOUT)$(BUILDDIR)3proxy$(EXESUFFICS) $(LDFLAGS) $(VERFILE)  3proxy$(OBJSUFFICS) mainfunc$(OBJSUFFICS) auth$(OBJSUFFICS) authradius$(OBJSUFFICS) conf$(OBJSUFFICS) datatypes$(OBJSUFFICS) srvproxy$(OBJSUFFICS) srvpop3p$(OBJSUFFICS) srvsmtpp$(OBJSUFFICS) srvftppr$(OBJSUFFICS) srvsocks$(OBJSUFFICS) srvtcppm$(OBJSUFFICS) srvudppm$(OBJSUFFICS) sockmap$(OBJSUFFICS) sockgetchar$(OBJSUFFICS) common$(OBJSUFFICS) mycrypt$(OBJSUFFICS) md5$(OBJSUFFICS) md4$(OBJSUFFICS) base64$(OBJSUFFICS) ftp$(OBJSUFFICS) smbdes$(OBJSUFFICS) ntlm$(OBJSUFFICS) stringtable$(OBJSUFFICS) srvwebadmin$(OBJSUFFICS) srvdnspr$(OBJSUFFICS) plugins$(OBJSUFFICS) $(COMPATLIBS) $(LIBS)
 
 
 clean:
 clean:
 	@$(REMOVECOMMAND) *$(OBJSUFFICS) $(COMPFILES)
 	@$(REMOVECOMMAND) *$(OBJSUFFICS) $(COMPFILES)

+ 0 - 366
src/myalloc.c

@@ -1,366 +0,0 @@
-/*
-   3APA3A simpliest proxy server
-   (c) 2002-2016 by Vladimir Dubrovin <3proxy@3proxy.ru>
-
-   please read License Agreement
-
-*/
-
-#include "proxy.h"
-
-
-#ifndef WITH_STD_MALLOC
-
-#include "proxy.h"
-
-#define MEM64K	65536
-#define MEM16K	16384
-#define	MEM4K	4096
-#define	MEM1K	1024
-#define MEM256	256
-
-#define DEBUGLEVEL 1
-
-struct mempage{
-	struct mempage *next;
-	unsigned usable;
-	unsigned char bitmap[32];
-	unsigned char data[MEM64K];
-} * pages[] = {NULL, NULL, NULL, NULL, NULL, NULL};
-
-unsigned memsizes[] = {MEM64K, MEM16K, MEM4K, MEM1K, MEM256, 0};
-enum pagesizes {
-		p64k,
-		p16k,
-		p4k,
-		p1k,
-		p256,
-		nomem,
-};
-
-pthread_mutex_t mem_mutex;
-int	mem_init = 0;
-#ifdef _WIN32
-HANDLE myheap;
-#define malloc(x) HeapAlloc(myheap, 0, x)
-#define free(x) HeapFree(myheap, 0, x)
-#endif
-
-void init_mem(void) {
-	mem_init++;
-	pthread_mutex_init(&mem_mutex, NULL);
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Memory initialized\n");
-fflush(stderr);
-#endif
-#ifdef _WIN32
-	myheap = HeapCreate(0, MEM64K*16, 0);
-#endif
-}
-
-void * myalloc64k(){
-
-	struct mempage *newpage;
-
-	if(!mem_init)init_mem();
-	if(!(newpage = (struct mempage *)malloc(sizeof(struct mempage)))){
-#if DEBUGLEVEL > 0
-fprintf(stderr, "Failed to allocate p64k\n");
-fflush(stderr);
-#endif
-		return NULL;
-	}
-	memset(newpage->bitmap, 0, 32);
-	newpage->usable = 0;
-	pthread_mutex_lock(&mem_mutex);
-	newpage->next = pages[p64k];	
-	pages[p64k] = newpage;
-	pthread_mutex_unlock(&mem_mutex);
-#if DEBUGLEVEL > 2
-fprintf(stderr, "New p64k created, address %X region: %X\n", newpage, newpage->data);
-fflush(stderr);
-#endif
-#if DEBUGLEVEL == 2
-fprintf(stderr, "myalloc64 %p\n", newpage->data);
-fflush(stderr);
-#endif
-
-	return newpage->data;
-}
-
-int alloced = 0;
-
-void * myalloc(size_t size){
-	struct mempage *newpage, *page;
-	unsigned pagesize;
-	unsigned i=0, j, k=0;
-	int p;
-
-
-	alloced++;
-	if(!mem_init)init_mem();
-	for(p = nomem; ; ) {
-		if(!p){
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Page is too large (%u), requesting malloc instead\n", size);
-fflush(stderr);
-#endif
-			return malloc(size);
-		}
-		p--;
-		if(size<memsizes[p]){
-			break;
-		}
-	}
-
-	if(p == p64k){
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Page will p64k\n");
-fflush(stderr);
-#endif
-		return myalloc64k();
-	}
-
-	pagesize = memsizes[p];
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Calculated pagesize: %u\n", pagesize);
-fflush(stderr);
-#endif
-	pthread_mutex_lock(&mem_mutex);
-	newpage = pages[p];
-	if(newpage && newpage->usable){
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Useful page found: %X,", newpage);
-fflush(stderr);
-#endif
-		for(j=0; j<32; j++){
-			register unsigned c = newpage->bitmap[j];
-			if(c){
-				for(k=0; ;k++)if(c & (1<<k))break;
-				i = (j<<11) + (k<<8);
-#if DEBUGLEVEL > 2
-fprintf(stderr, "region: %X, offset %u, byte %u, %u, %u\n", newpage->data + i, i, j, k, newpage->bitmap[j]);
-fflush(stderr);
-#endif                  
-				break;
-			}
-		}
-	}
-	else{
-		if(!(newpage = (struct mempage *)malloc(sizeof(struct mempage)))){
-			pthread_mutex_unlock(&mem_mutex);
-#if DEBUGLEVEL > 0
-fprintf(stderr, "Failed to allocate p64k\n");
-fflush(stderr);
-#endif
-			return NULL;
-		}
-#if DEBUGLEVEL > 2
-fprintf(stderr, "New page used: %X,", newpage);
-fflush(stderr);
-#endif
-		memset(newpage->bitmap, 0, 32);
-		for(i = 0; i<MEM64K; i+=pagesize){
-			j = (i >> 11);
-			k = ((i & 0x000007FF) >> 8);
-			newpage->bitmap[j] |= (1<<k);
-		}
-		i-=pagesize;
-		newpage->next = pages[p];
-		newpage->usable = MEM64K;
-		pages[p] = newpage;
-	}
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Byte was %d/%d/%d\n", j, k, newpage->bitmap[j]);
-fflush(stderr);
-#endif
-	newpage->bitmap[j] ^= (1<<k);
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Byte set %d/%d/%d\n", j, k, newpage->bitmap[j]);
-fflush(stderr);
-#endif
-	newpage->usable -= pagesize;
-#if DEBUGLEVEL > 2
-fprintf(stderr, "usable amount after allocation: %u\n", newpage->usable);
-fflush(stderr);
-#endif
-	if(!newpage->usable){
-#if DEBUGLEVEL > 2
-fprintf(stderr, "No usable amount left\n", newpage->usable);
-fflush(stderr);
-#endif
-		if((page = newpage->next) && page->usable){
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Moving to end of list\n", newpage->usable);
-fflush(stderr);
-#endif
-			pages[p] = page;
-			while(page->next && page->next->usable)page = page->next;
-			newpage->next = page->next;
-			page->next = newpage;
-		}
-	}
-	pthread_mutex_unlock(&mem_mutex);
-#if DEBUGLEVEL > 2
-fprintf(stderr, "All done, returning: %x\n", newpage->data + i);
-fflush(stderr);
-#endif
-#if DEBUGLEVEL == 2
-fprintf(stderr, "malloc %p\n", (void *)(newpage->data + i));
-fflush(stderr);
-#endif
-
-	return (void *)(newpage->data + i);
-}
-
-int myfindsize(void * p, struct mempage ***prevpagep, struct mempage **pagep){
-	int i;
-	struct mempage *prevpage, *page;
-
-	for (i=0; i<nomem; i++){
-		for(page = pages[i], prevpage = NULL; page; page=page->next){
-			if( p >= (void *)page->data && p < (void *)(page->data + MEM64K))break;
-			prevpage = page;
-		}
-		if(page){
-			if(pagep)*pagep = page;
-			if(prevpagep)*prevpagep = prevpage?&prevpage->next:&pages[i];
-#if DEBUGLEVEL > 2
-fprintf(stderr, "%x belongs to page: %x with data %x\n", p, page, page->data);
-fflush(stderr);
-#endif
-			break;
-		}
-	}
-	return i;
-
-
-}
-
-void myfree(void *p){
-	struct mempage **prevpage, *page;
-	int i;
-	unsigned pagesize;
-	unsigned size, j, k;
-	
-	alloced--;
-#if DEBUGLEVEL == 2
-fprintf(stderr, "free %p\n", p);
-fflush(stderr);
-#endif
-	pthread_mutex_lock(&mem_mutex);
-	i = myfindsize(p, &prevpage, &page);
-	if (i == nomem) {
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Page does not exists, trying free()\n");
-fflush(stderr);
-#endif
-		pthread_mutex_unlock(&mem_mutex);
-		free(p);
-		return;
-	}
-	pagesize = memsizes[i];
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Calculated pagesize: %u\n", pagesize);
-fflush(stderr);
-#endif
-	size = (unsigned)((unsigned char*)p - page->data);
-	if(size%pagesize) {
-#if DEBUGLEVEL > 0
-write(2, p, 4);
-fprintf(stderr, "\nGiven address is not block aligned, ignoring\n");
-fflush(stderr);
-#endif
-		pthread_mutex_unlock(&mem_mutex);
-		return; /* Hmmmmm */
-	}
-	*prevpage = page->next;
-	page->usable += pagesize;
-#if DEBUGLEVEL > 2
-fprintf(stderr, "New usable space: %u\n", page->usable);
-fflush(stderr);
-#endif
-	if(page->usable >= MEM64K && ((pagesize == MEM64K) || (pages[i] && pages[i]->usable))) {
-#if DEBUGLEVEL > 2
-fprintf(stderr, "Free this page\n");
-fflush(stderr);
-#endif
-		free(page);
-	}
-	else {
-		j = (size>>11);
-		k = ((size & 0x000007FF) >> 8);
-		k = ('\01'<<k);
-		if(page->bitmap[j] & k) {
-#if DEBUGLEVEL > 0
-fprintf(stderr, "Error: double free() %d/%d/%d\n", j, k, page->bitmap[j]);
-fflush(stderr);
-#endif
-			page->usable += pagesize;
-		}
-		page->bitmap[j] |= k;
-		page->next = pages[i];
-		pages[i] = page;
-#if DEBUGLEVEL > 2
-fprintf(stderr, "This page will be reused next time\n");
-fflush(stderr);
-#endif
-	}
-	pthread_mutex_unlock(&mem_mutex);
-}
-
-char * mystrdup(const char *str){
-	unsigned l;
-	char *p;
-
-	if(!str) return NULL;
-	l = ((unsigned)strlen(str))+1;
-	p = myalloc(l);
-	if(p)memcpy(p, str, l);
-#if DEBUGLEVEL == 2
-fprintf(stderr, "strdup %p\n", p);
-fflush(stderr);
-#endif
-	return p;
-}
-
-
-void *myrealloc(void *ptr, size_t size){
-	unsigned l;
-	void * p;
-	l = myfindsize(ptr, NULL, NULL);
-	if(size <= memsizes[l]) return ptr;
-	p = myalloc(size);
-	if(p){
-		memmove(p,ptr,size);
-		myfree(ptr);
-	}
-	return p;	
-}
-
-
-#ifdef WITH_MAIN
-int main(){
-	void *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9, *p10, *p11, *p12, *p13;
-	p1 = myalloc(5000);
-	p2 = myalloc(5000);
-	p3 = myalloc(5000);
-	p4 = myalloc(5000);
-	p5 = myalloc(5000);
-	p6 = myalloc(5000);
-	p7 = myalloc(5000);
-	p8 = myalloc(5000);
-	p9 = myalloc(5000);
-	p10 = myalloc(5000);
-	myfree(p2);
-	myfree(p8);
-	p11 = myalloc(5000);
-	p12 = myalloc(5000);
-	p13 = myalloc(5000);
-	p2 = myalloc(5000);
-	p8 = myalloc(5000);
-	myalloc(5000);
-}
-#endif
-
-#endif

+ 0 - 16
src/proxy.h

@@ -273,22 +273,6 @@ int connectwithpoll(SOCKET sock, struct sockaddr *sa, SASIZETYPE size, int to);
 
 
 int myrand(void * entropy, int len);
 int myrand(void * entropy, int len);
 
 
-#ifdef WITH_STD_MALLOC
-
-#define myalloc malloc
-#define myfree free
-#define myrealloc realloc
-#define mystrdup strdup
-
-#else
-
-void *myalloc(size_t size);
-void myfree(void *ptr);
-void *myrealloc(void *ptr, size_t size);
-char * mystrdup(const char *str);
-
-#endif
-
 extern char *copyright;
 extern char *copyright;
 
 
 
 

+ 9 - 4
src/structures.h

@@ -197,6 +197,11 @@ typedef void * (*EXTENDFUNC) (struct node *node);
 typedef void (*CBFUNC)(void *cb, char * buf, int inbuf);
 typedef void (*CBFUNC)(void *cb, char * buf, int inbuf);
 typedef void (*PRINTFUNC) (struct node *node, CBFUNC cbf, void*cb);
 typedef void (*PRINTFUNC) (struct node *node, CBFUNC cbf, void*cb);
 
 
+#define myalloc malloc
+#define myfree free
+#define myrealloc realloc
+#define mystrdup strdup
+
 #ifdef WIN32
 #ifdef WIN32
 
 
 #define PLUGINAPI __declspec(dllexport)
 #define PLUGINAPI __declspec(dllexport)
@@ -749,10 +754,10 @@ struct pluginlink {
 	void (*decodeurl)(unsigned char *s, int allowcr);
 	void (*decodeurl)(unsigned char *s, int allowcr);
 	int (*parsestr) (unsigned char *str, unsigned char **argm, int nitems, unsigned char ** buff, int *inbuf, int *bufsize);
 	int (*parsestr) (unsigned char *str, unsigned char **argm, int nitems, unsigned char ** buff, int *inbuf, int *bufsize);
 	struct ace * (*make_ace) (int argc, unsigned char ** argv);
 	struct ace * (*make_ace) (int argc, unsigned char ** argv);
-	void * (*myalloc)(size_t size);
-	void (*myfree)(void *ptr);
-	void *(*myrealloc)(void *ptr, size_t size);
-	char * (*mystrdup)(const char *str);
+	void * (*malloc)(size_t size);
+	void (*free)(void *ptr);
+	void *(*realloc)(void *ptr, size_t size);
+	char * (*strdup)(const char *str);
 	TRAFCOUNTFUNC trafcountfunc;
 	TRAFCOUNTFUNC trafcountfunc;
 	char ** proxy_table;
 	char ** proxy_table;
 	struct schedule ** schedule;
 	struct schedule ** schedule;