Browse Source

getsockname and getpeername now return error code.

woollybah 6 năm trước cách đây
mục cha
commit
b76840c2fd
2 tập tin đã thay đổi với 7 bổ sung13 xóa
  1. 2 2
      stdc.mod/stdc.bmx
  2. 5 11
      stdc.mod/stdc.c

+ 2 - 2
stdc.mod/stdc.bmx

@@ -358,8 +358,8 @@ Function bmx_stdc_bind_info:Int(socket:Int, info:Byte Ptr)
 Function bmx_stdc_sockaddrestorage_new:Byte Ptr()
 Function bmx_stdc_sockaddrestorage_address:String(handle:Byte Ptr)
 Function bmx_stdc_accept_:Int(socket:Int, storage:Byte Ptr)
-Function bmx_stdc_getsockname:String(socket:Int, port:Int Var)
-Function bmx_stdc_getpeername:String(socket:Int, port:Int Var)
+Function bmx_stdc_getsockname:Int(socket:Int, port:Int Var, address:String Var)
+Function bmx_stdc_getpeername:Int(socket:Int, port:Int Var, address:String Var)
 
 'time
 

+ 5 - 11
stdc.mod/stdc.c

@@ -899,13 +899,10 @@ BBString * bmx_stdc_sockaddrestorage_address(struct sockaddr_storage * storage)
 	return address;
 }
 
-BBString * bmx_stdc_getsockname(int socket, int * port) {
+int bmx_stdc_getsockname(int socket, int * port, BBSTRING * address) {
 	struct sockaddr_storage storage;
 	int len = sizeof(struct sockaddr_storage);
 	
-	BBString * address = &bbEmptyString;
-	*port = 0;
-	
 	int res = getsockname(socket, (struct sockaddr *)&storage, &len);
 	
 	if (res >= 0) {
@@ -915,19 +912,16 @@ BBString * bmx_stdc_getsockname(int socket, int * port) {
 			*port = ntohs(((struct sockaddr_in6*)&storage)->sin6_port);
 		}
 		
-		address = bmx_stdc_sockaddrestorage_address(&storage);
+		*address = bmx_stdc_sockaddrestorage_address(&storage);
 	}
 	
-	return address;
+	return res;
 }
 
-BBString * bmx_stdc_getpeername(int socket, int * port) {
+int bmx_stdc_getpeername(int socket, int * port, BBSTRING * address) {
 	struct sockaddr_storage storage;
 	int len = sizeof(struct sockaddr_storage);
 	
-	BBString * address = &bbEmptyString;
-	*port = 0;
-	
 	int res = getpeername(socket, (struct sockaddr *)&storage, &len);
 	
 	if (res >= 0) {
@@ -940,7 +934,7 @@ BBString * bmx_stdc_getpeername(int socket, int * port) {
 		address = bmx_stdc_sockaddrestorage_address(&storage);
 	}
 	
-	return address;
+	return res;
 }
 
 #if _WIN32