mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 17:52:45 +00:00 
			
		
		
		
	Kernel: Stub out the SO_DEBUG SOL_SOCKET-level option
This commit is contained in:
		
							parent
							
								
									e521ffd156
								
							
						
					
					
						commit
						a0e2fedc20
					
				
					 3 changed files with 14 additions and 0 deletions
				
			
		|  | @ -101,6 +101,7 @@ enum { | ||||||
|     SO_PEERCRED, |     SO_PEERCRED, | ||||||
|     SO_RCVBUF, |     SO_RCVBUF, | ||||||
|     SO_SNDBUF, |     SO_SNDBUF, | ||||||
|  |     SO_DEBUG, | ||||||
|     SO_REUSEADDR, |     SO_REUSEADDR, | ||||||
|     SO_BINDTODEVICE, |     SO_BINDTODEVICE, | ||||||
|     SO_KEEPALIVE, |     SO_KEEPALIVE, | ||||||
|  | @ -113,6 +114,7 @@ enum { | ||||||
| #define SO_TYPE SO_TYPE | #define SO_TYPE SO_TYPE | ||||||
| #define SO_ERROR SO_ERROR | #define SO_ERROR SO_ERROR | ||||||
| #define SO_PEERCRED SO_PEERCRED | #define SO_PEERCRED SO_PEERCRED | ||||||
|  | #define SO_DEBUG SO_DEBUG | ||||||
| #define SO_REUSEADDR SO_REUSEADDR | #define SO_REUSEADDR SO_REUSEADDR | ||||||
| #define SO_BINDTODEVICE SO_BINDTODEVICE | #define SO_BINDTODEVICE SO_BINDTODEVICE | ||||||
| #define SO_KEEPALIVE SO_KEEPALIVE | #define SO_KEEPALIVE SO_KEEPALIVE | ||||||
|  |  | ||||||
|  | @ -103,6 +103,9 @@ ErrorOr<void> Socket::setsockopt(int level, int option, Userspace<const void*> u | ||||||
|         m_bound_interface = move(device); |         m_bound_interface = move(device); | ||||||
|         return {}; |         return {}; | ||||||
|     } |     } | ||||||
|  |     case SO_DEBUG: | ||||||
|  |         // NOTE: This is supposed to toggle collection of debugging information on/off, we don't have any right now, so this is a no-op.
 | ||||||
|  |         return {}; | ||||||
|     case SO_KEEPALIVE: |     case SO_KEEPALIVE: | ||||||
|         // FIXME: Obviously, this is not a real keepalive.
 |         // FIXME: Obviously, this is not a real keepalive.
 | ||||||
|         return {}; |         return {}; | ||||||
|  | @ -198,6 +201,13 @@ ErrorOr<void> Socket::getsockopt(OpenFileDescription&, int level, int option, Us | ||||||
|         TRY(copy_to_user(static_ptr_cast<int*>(value), &m_type)); |         TRY(copy_to_user(static_ptr_cast<int*>(value), &m_type)); | ||||||
|         size = sizeof(int); |         size = sizeof(int); | ||||||
|         return copy_to_user(value_size, &size); |         return copy_to_user(value_size, &size); | ||||||
|  |     case SO_DEBUG: | ||||||
|  |         // NOTE: This is supposed to toggle collection of debugging information on/off, we don't have any right now, so we just claim it's always off.
 | ||||||
|  |         if (size < sizeof(int)) | ||||||
|  |             return EINVAL; | ||||||
|  |         TRY(memset_user(value.unsafe_userspace_ptr(), 0, sizeof(int))); | ||||||
|  |         size = sizeof(int); | ||||||
|  |         return copy_to_user(value_size, &size); | ||||||
|     default: |     default: | ||||||
|         dbgln("setsockopt({}) at SOL_SOCKET not implemented.", option); |         dbgln("setsockopt({}) at SOL_SOCKET not implemented.", option); | ||||||
|         return ENOPROTOOPT; |         return ENOPROTOOPT; | ||||||
|  |  | ||||||
|  | @ -231,3 +231,5 @@ set(WSSCREEN_DEBUG ON) | ||||||
| # set(BOCHS_DEBUG_PORT) | # set(BOCHS_DEBUG_PORT) | ||||||
| # False positive: IFF_DEBUG is an ioctl flag | # False positive: IFF_DEBUG is an ioctl flag | ||||||
| # set(IFF_DEBUG) | # set(IFF_DEBUG) | ||||||
|  | # False positive: SO_DEBUG is a socket option | ||||||
|  | # set(SO_DEBUG) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Idan Horowitz
						Idan Horowitz