mirror of
				https://github.com/3proxy/3proxy.git
				synced 2025-11-04 07:42:39 +08:00 
			
		
		
		
	Fix windows issues
This commit is contained in:
		
							parent
							
								
									8198db8617
								
							
						
					
					
						commit
						d162ad5c38
					
				@ -14,7 +14,7 @@ LN = link
 | 
				
			|||||||
LDFLAGS =  /nologo /subsystem:console /incremental:no /machine:I386
 | 
					LDFLAGS =  /nologo /subsystem:console /incremental:no /machine:I386
 | 
				
			||||||
DLFLAGS = /DLL
 | 
					DLFLAGS = /DLL
 | 
				
			||||||
DLSUFFICS = .dll
 | 
					DLSUFFICS = .dll
 | 
				
			||||||
LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib kernel32.lib Gdi32.lib libcrypto_static.lib libssl_static.lib
 | 
					LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib kernel32.lib Gdi32.lib Crypt32.lib libcrypto64MT.lib libssl64MT.lib
 | 
				
			||||||
LIBSOLD = libeay32MT.lib ssleay32MT.lib
 | 
					LIBSOLD = libeay32MT.lib ssleay32MT.lib
 | 
				
			||||||
LIBSPREFIX = 
 | 
					LIBSPREFIX = 
 | 
				
			||||||
LIBSSUFFIX = .lib
 | 
					LIBSSUFFIX = .lib
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ LN = link
 | 
				
			|||||||
LDFLAGS = /nologo /subsystem:console /incremental:no /machine:x64
 | 
					LDFLAGS = /nologo /subsystem:console /incremental:no /machine:x64
 | 
				
			||||||
DLFLAGS = /DLL
 | 
					DLFLAGS = /DLL
 | 
				
			||||||
DLSUFFICS = .dll
 | 
					DLSUFFICS = .dll
 | 
				
			||||||
LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib kernel32.lib Gdi32.lib libcrypto_static.lib libssl_static.lib
 | 
					LIBS = ws2_32.lib advapi32.lib odbc32.lib user32.lib kernel32.lib Gdi32.lib Crypt32.lib libcrypto64MT.lib libssl64MT.lib
 | 
				
			||||||
LIBSOLD = libeay32.lib ssleay32.lib
 | 
					LIBSOLD = libeay32.lib ssleay32.lib
 | 
				
			||||||
LIBSPREFIX = 
 | 
					LIBSPREFIX = 
 | 
				
			||||||
LIBSSUFFIX = .lib
 | 
					LIBSSUFFIX = .lib
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										11
									
								
								src/common.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/common.c
									
									
									
									
									
								
							@ -207,13 +207,16 @@ int
 | 
				
			|||||||
	return connect(s, name, namelen);
 | 
						return connect(s, name, namelen);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    int WINAPI def_getpeername(void* state, SOCKET s, struct sockaddr * name, int * namelen){
 | 
					    int WINAPI def_getpeername(void* state, SOCKET s, struct sockaddr * name, int * namelen){
 | 
				
			||||||
	return getpeername(s, struct name, namelen);
 | 
						return getpeername(s, name, namelen);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    int WINAPI def_getsockname(void* state, SOCKET s, struct sockaddr * name, int * namelen){
 | 
					    int WINAPI def_getsockname(void* state, SOCKET s, struct sockaddr * name, int * namelen){
 | 
				
			||||||
	return 	getsockname(s, name, namelen);
 | 
						return 	getsockname(s, name, namelen);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    int WINAPI def_getsockopt(void* state, SOCKET s, int level, int optname, char * optval, int * optlen){
 | 
					    int WINAPI def_getsockopt(void* state, SOCKET s, int level, int optname, char * optval, int * optlen){
 | 
				
			||||||
	return getsockopts(s, level, optname, optval, optlen);
 | 
						return getsockopt(s, level, optname, optval, optlen);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    int WINAPI def_setsockopt(void* state, SOCKET s, int level, int optname, const char *optval, int optlen){
 | 
				
			||||||
 | 
						return setsockopt(s, level, optname, optval, optlen);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    int WINAPI def_poll(void* state, struct pollfd *fds, unsigned int nfds, int timeout){
 | 
					    int WINAPI def_poll(void* state, struct pollfd *fds, unsigned int nfds, int timeout){
 | 
				
			||||||
#ifndef WITH_POLL
 | 
					#ifndef WITH_POLL
 | 
				
			||||||
@ -227,10 +230,10 @@ int
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    int WINAPI def_send(void* state, SOCKET s, const char *msg, int len, int flags){
 | 
					    int WINAPI def_send(void* state, SOCKET s, const char *msg, int len, int flags){
 | 
				
			||||||
	return send(state, s, msg, len, flags);
 | 
						return send(s, msg, len, flags);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    int WINAPI def_sendto(void* state, SOCKET s, const char *msg, int len, int flags, const struct sockaddr *to, int tolen){
 | 
					    int WINAPI def_sendto(void* state, SOCKET s, const char *msg, int len, int flags, const struct sockaddr *to, int tolen){
 | 
				
			||||||
        return sendto(state, s, msg, len, flags, to, tolen);
 | 
					        return sendto(s, msg, len, flags, to, tolen);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
    int WINAPI def_recv(void* state, SOCKET s, char *buf, int len, int flags){
 | 
					    int WINAPI def_recv(void* state, SOCKET s, char *buf, int len, int flags){
 | 
				
			||||||
 | 
				
			|||||||
@ -262,7 +262,7 @@ static void removefps(struct fp_stream * fps){
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int WINAPI fp_connect(SOCKET s, const struct sockaddr *name, fp_size_t namelen){
 | 
					static int WINAPI fp_connect(SOCKET s, const struct sockaddr *name, fp_size_t namelen){
 | 
				
			||||||
 return sso._connect(s, name, namelen);
 | 
					 return sso._connect(sso.state, s, name, namelen);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void processcallbacks(struct fp_stream *fps, int what, char *msg, int size){
 | 
					void processcallbacks(struct fp_stream *fps, int what, char *msg, int size){
 | 
				
			||||||
@ -287,7 +287,7 @@ void processcallbacks(struct fp_stream *fps, int what, char *msg, int size){
 | 
				
			|||||||
			case  GOT_SMTP_REQ:
 | 
								case  GOT_SMTP_REQ:
 | 
				
			||||||
			case  GOT_SMTP_DATA:
 | 
								case  GOT_SMTP_DATA:
 | 
				
			||||||
				fps->state = FLUSH_DATA;
 | 
									fps->state = FLUSH_DATA;
 | 
				
			||||||
				pl->socksend(fps->fpd.cp->clisock, fp_stringtable[1], (int)strlen(fp_stringtable[1]), pl->conf->timeouts[STRING_S]);
 | 
									pl->socksend(fps->fpd.cp->sostate,fps->fpd.cp->clisock, fp_stringtable[1], (int)strlen(fp_stringtable[1]), pl->conf->timeouts[STRING_S]);
 | 
				
			||||||
				fps->state = state;
 | 
									fps->state = state;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			case GOT_HTTP_REQUEST:
 | 
								case GOT_HTTP_REQUEST:
 | 
				
			||||||
@ -299,7 +299,7 @@ void processcallbacks(struct fp_stream *fps, int what, char *msg, int size){
 | 
				
			|||||||
			case GOT_HTTP_SRVDATA:
 | 
								case GOT_HTTP_SRVDATA:
 | 
				
			||||||
				if(!fps->serversent){
 | 
									if(!fps->serversent){
 | 
				
			||||||
					fps->state = FLUSH_DATA;
 | 
										fps->state = FLUSH_DATA;
 | 
				
			||||||
					pl->socksend(fps->fpd.cp->clisock, fp_stringtable[0], (int)strlen(fp_stringtable[0]), pl->conf->timeouts[STRING_S]);
 | 
										pl->socksend(fps->fpd.cp->sostate, fps->fpd.cp->clisock, fp_stringtable[0], (int)strlen(fp_stringtable[0]), pl->conf->timeouts[STRING_S]);
 | 
				
			||||||
					fps->state = state;
 | 
										fps->state = state;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
@ -307,15 +307,15 @@ void processcallbacks(struct fp_stream *fps, int what, char *msg, int size){
 | 
				
			|||||||
			case GOT_FTP_REQ:
 | 
								case GOT_FTP_REQ:
 | 
				
			||||||
			case GOT_FTP_SRVDATA:
 | 
								case GOT_FTP_SRVDATA:
 | 
				
			||||||
				fps->state = FLUSH_DATA;
 | 
									fps->state = FLUSH_DATA;
 | 
				
			||||||
				pl->socksend(fps->fpd.cp->ctrlsock, fp_stringtable[1], (int)strlen(fp_stringtable[1]), pl->conf->timeouts[STRING_S]);
 | 
									pl->socksend(fps->fpd.cp->sostate, fps->fpd.cp->ctrlsock, fp_stringtable[1], (int)strlen(fp_stringtable[1]), pl->conf->timeouts[STRING_S]);
 | 
				
			||||||
				fps->state = state;
 | 
									fps->state = state;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if(fps->fpd.cp->remsock != INVALID_SOCKET)sso._closesocket(fps->fpd.cp->remsock);
 | 
							if(fps->fpd.cp->remsock != INVALID_SOCKET)sso._closesocket(sso.state, fps->fpd.cp->remsock);
 | 
				
			||||||
		fps->fpd.cp->remsock = INVALID_SOCKET;
 | 
							fps->fpd.cp->remsock = INVALID_SOCKET;
 | 
				
			||||||
		if(fps->fpd.cp->clisock != INVALID_SOCKET)sso._closesocket(fps->fpd.cp->clisock);
 | 
							if(fps->fpd.cp->clisock != INVALID_SOCKET)sso._closesocket(sso.state, fps->fpd.cp->clisock);
 | 
				
			||||||
		fps->fpd.cp->clisock = INVALID_SOCKET;
 | 
							fps->fpd.cp->clisock = INVALID_SOCKET;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -359,7 +359,7 @@ static int copyfdtosock(struct fp_stream * fps, DIRECTION which, long len){
 | 
				
			|||||||
			if(fps->serversent >= fps->srvhdrwritten){
 | 
								if(fps->serversent >= fps->srvhdrwritten){
 | 
				
			||||||
				sprintf(fps->buf, "%lx\r\n", len);
 | 
									sprintf(fps->buf, "%lx\r\n", len);
 | 
				
			||||||
				sendchunk = (int)strlen(fps->buf);
 | 
									sendchunk = (int)strlen(fps->buf);
 | 
				
			||||||
				if(pl->socksend(fps->fpd.cp->clisock, fps->buf, sendchunk, pl->conf->timeouts[STRING_S]) != sendchunk){
 | 
									if(pl->socksend(fps->fpd.cp->sostate, fps->fpd.cp->clisock, fps->buf, sendchunk, pl->conf->timeouts[STRING_S]) != sendchunk){
 | 
				
			||||||
					return -4;
 | 
										return -4;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			} 
 | 
								} 
 | 
				
			||||||
@ -398,20 +398,20 @@ static int copyfdtosock(struct fp_stream * fps, DIRECTION which, long len){
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
			return -3;
 | 
								return -3;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if(pl->socksend(sock, fps->buf, res, pl->conf->timeouts[STRING_S]) != res) {
 | 
							if(pl->socksend(fps->fpd.cp->sostate, sock, fps->buf, res, pl->conf->timeouts[STRING_S]) != res) {
 | 
				
			||||||
			return -4;
 | 
								return -4;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		len -= res;
 | 
							len -= res;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if(sendchunk){
 | 
						if(sendchunk){
 | 
				
			||||||
		if(pl->socksend(sock, "\r\n", 2, pl->conf->timeouts[STRING_S]) != 2)
 | 
							if(pl->socksend(fps->fpd.cp->sostate, sock, "\r\n", 2, pl->conf->timeouts[STRING_S]) != 2)
 | 
				
			||||||
			return -4;
 | 
								return -4;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	fps->state = state;
 | 
						fps->state = state;
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int WINAPI fp_poll(struct pollfd *fds, unsigned int nfds, int timeout){
 | 
					static int WINAPI fp_poll(void *state, struct pollfd *fds, unsigned int nfds, int timeout){
 | 
				
			||||||
 struct fp_stream *fps = NULL;
 | 
					 struct fp_stream *fps = NULL;
 | 
				
			||||||
 int res;
 | 
					 int res;
 | 
				
			||||||
 unsigned i;
 | 
					 unsigned i;
 | 
				
			||||||
@ -456,10 +456,10 @@ static int WINAPI fp_poll(struct pollfd *fds, unsigned int nfds, int timeout){
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 return sso._poll(fds, nfds, timeout);
 | 
					 return sso._poll(sso.state, fds, nfds, timeout);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static fp_ssize_t WINAPI fp_send(SOCKET s, const char *msg, fp_size_t len, int flags){
 | 
					static fp_ssize_t WINAPI fp_send(void *state, SOCKET s, const char *msg, fp_size_t len, int flags){
 | 
				
			||||||
 struct fp_stream *fps = NULL;
 | 
					 struct fp_stream *fps = NULL;
 | 
				
			||||||
 int res;
 | 
					 int res;
 | 
				
			||||||
 res = searchsocket(s, &fps);
 | 
					 res = searchsocket(s, &fps);
 | 
				
			||||||
@ -474,7 +474,7 @@ static fp_ssize_t WINAPI fp_send(SOCKET s, const char *msg, fp_size_t len, int f
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		closefiles(fps);
 | 
							closefiles(fps);
 | 
				
			||||||
		fps->state = 0;
 | 
							fps->state = 0;
 | 
				
			||||||
		return sso._send(s, msg, len, flags);
 | 
							return sso._send(sso.state, s, msg, len, flags);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if((((fps->what & FP_CLIHEADER) && (fps->state == GOT_HTTP_REQUEST || fps->state == GOT_HTTP_CLI_HDR2)) || ((fps->what & FP_CLIDATA) && fps->state == GOT_HTTP_CLIDATA))){
 | 
						if((((fps->what & FP_CLIHEADER) && (fps->state == GOT_HTTP_REQUEST || fps->state == GOT_HTTP_CLI_HDR2)) || ((fps->what & FP_CLIDATA) && fps->state == GOT_HTTP_CLIDATA))){
 | 
				
			||||||
#ifdef _WIN32
 | 
					#ifdef _WIN32
 | 
				
			||||||
@ -504,7 +504,7 @@ static fp_ssize_t WINAPI fp_send(SOCKET s, const char *msg, fp_size_t len, int f
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			if(c == '\r' || c == '\n') continue;
 | 
								if(c == '\r' || c == '\n') continue;
 | 
				
			||||||
			if((c<'0'|| c>'9') && (c<'A' || c>'F') && (c<'a' || c>'f')) {
 | 
								if((c<'0'|| c>'9') && (c<'A' || c>'F') && (c<'a' || c>'f')) {
 | 
				
			||||||
				return sso._send(s, msg, len, flags);
 | 
									return sso._send(sso.state, s, msg, len, flags);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if(c != '0') hasnonzero = 1;
 | 
								if(c != '0') hasnonzero = 1;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@ -519,7 +519,7 @@ static fp_ssize_t WINAPI fp_send(SOCKET s, const char *msg, fp_size_t len, int f
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			closefiles(fps);
 | 
								closefiles(fps);
 | 
				
			||||||
			fps->state = 0;
 | 
								fps->state = 0;
 | 
				
			||||||
			return sso._send(s, msg, len, flags);
 | 
								return sso._send(sso.state, s, msg, len, flags);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return len;
 | 
							return len;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -541,9 +541,9 @@ static fp_ssize_t WINAPI fp_send(SOCKET s, const char *msg, fp_size_t len, int f
 | 
				
			|||||||
		return res;
 | 
							return res;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 return sso._send(s, msg, len, flags);
 | 
					 return sso._send(sso.state, s, msg, len, flags);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static fp_ssize_t WINAPI fp_sendto(SOCKET s, const void *msg, int len, int flags, const struct sockaddr *to, fp_size_t tolen){
 | 
					static fp_ssize_t WINAPI fp_sendto(void *state, SOCKET s, const void *msg, int len, int flags, const struct sockaddr *to, fp_size_t tolen){
 | 
				
			||||||
 struct fp_stream *fps = NULL;
 | 
					 struct fp_stream *fps = NULL;
 | 
				
			||||||
 int res;
 | 
					 int res;
 | 
				
			||||||
 res = searchsocket(s, &fps);
 | 
					 res = searchsocket(s, &fps);
 | 
				
			||||||
@ -659,15 +659,15 @@ static fp_ssize_t WINAPI fp_sendto(SOCKET s, const void *msg, int len, int flags
 | 
				
			|||||||
		return res;
 | 
							return res;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 return sso._sendto(s, msg, len, flags, to, tolen);
 | 
					 return sso._sendto(sso.state, s, msg, len, flags, to, tolen);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static fp_ssize_t WINAPI fp_recv(SOCKET s, void *buf, fp_size_t len, int flags){
 | 
					static fp_ssize_t WINAPI fp_recv(void *state, SOCKET s, void *buf, fp_size_t len, int flags){
 | 
				
			||||||
 return sso._recv(s, buf, len, flags);
 | 
					 return sso._recv(sso.state, s, buf, len, flags);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static fp_ssize_t WINAPI fp_recvfrom(SOCKET s, void * buf, fp_size_t len, int flags, struct sockaddr * from, fp_size_t * fromlen){
 | 
					static fp_ssize_t WINAPI fp_recvfrom(void *state, SOCKET s, void * buf, fp_size_t len, int flags, struct sockaddr * from, fp_size_t * fromlen){
 | 
				
			||||||
 return sso._recvfrom(s, buf, len, flags, from, fromlen);
 | 
					 return sso._recvfrom(sso.state, s, buf, len, flags, from, fromlen);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static int WINAPI fp_shutdown(SOCKET s, int how){
 | 
					static int WINAPI fp_shutdown(void *state, SOCKET s, int how){
 | 
				
			||||||
 struct fp_stream *fps = NULL;
 | 
					 struct fp_stream *fps = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 int res;
 | 
					 int res;
 | 
				
			||||||
@ -691,10 +691,10 @@ static int WINAPI fp_shutdown(SOCKET s, int how){
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 return sso._shutdown(s, how);
 | 
					 return sso._shutdown(sso.state, s, how);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
static int WINAPI fp_closesocket(SOCKET s){
 | 
					static int WINAPI fp_closesocket(void *state, SOCKET s){
 | 
				
			||||||
 return sso._closesocket(s);
 | 
					 return sso._closesocket(sso.state, s);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user